1. 程式人生 > >PostgreSQL視訊去重 圖片去重系列1

PostgreSQL視訊去重 圖片去重系列1

PostgreSQL 在視訊、圖片去重,影象搜尋業務中的應用圖片搜尋PostgreSQL的影象搜尋外掛使用了非常主流的Haar wavelet技術對影象進行變換後儲存gist 索引方法(支援pattern和signature型別), 以及KNN操作符,可以用於搜尋相似度1,建立圖片表create table image (id serial, data bytea);2,匯入圖片到資料庫insert into image(data) select pg_read_binary_file('檔案全路徑');錯誤:ERROR: absolute path not allowedPGDATA 為/var/lib/pgsql/9.6/data/,在vi /usr/lib/systemd/system/postgresql-9.5.service裡面有
拷貝檔案到該目錄後insert into image(data) select pg_read_binary_file('./2/1K7A9699.JPG');3,將圖片轉換成 patten 和 signature,很耗時CREATE TABLE pat AS (SELECT id, shuffle_pattern(pattern) AS pattern, pattern2signature(pattern) AS signature FROM ( SELECT id, jpeg2pattern(data) AS pattern FROM image) x );4,建立索引ALTER TABLE pat ADD PRIMARY KEY (id);CREATE INDEX pat_signature_idx ON pat USING gist (signature);
5,相似度排行SELECT id, smlr FROM ( SELECT id, pattern <-> (SELECT pattern FROM pat WHERE id = 74) AS smlr FROM pat WHERE id <> 74 ORDER BY signature <-> (SELECT signature FROM pat WHERE id = 74) LIMIT 100) x ORDER BY x.smlr ASC LIMIT 10;視訊去重抽取視訊中的關鍵幀1,建立圖片表2,匯入圖片到資料庫3,將圖片轉換成 patten 和 signature
CREATE TABLE pat AS ( SELECT id, movie_id, shuffle_pattern(pattern) AS pattern, pattern2signature(pattern) AS signature FROM ( SELECT id, movie_id, jpeg2pattern(data) AS pattern FROM image ) x );create table targer_table as select * from source_table是會複製表結構+表資料,SELECT name FROM (SELECT name FROM agentinformation) 這種是不對的You need to alias the subquery.SELECT name FROM (SELECT name FROM agentinformation) a or to be more explicitSELECT a.name FROM (SELECT name FROM agentinformation) a 即select x.id, x.movie_id...4.計算不同視訊的相似度select t1.movie_id, t1.id, t1.signature<->t2.signature from pat t1 join pat t2 on (t1.movie_id<>t2.movie_id) order by t1.signature<->t2.signature desc or select t1.movie_id, t1.id, t1.signature<->t2.signature from pat t1 join pat t2 on (t1.movie_id<>t2.movie_id) where t1.signature<->t2.signature > 0.9 order by t1.signature<->t2.signature desc 多上面紅色那一行,其它一樣報錯:ERROR: function jpeg2pattern(bytea) does not exist這個是因為擴充套件imgsmlr安裝不正確\dx命令檢視所有已安裝的擴充套件模組imgsmlr$ cd imgsmlr$ export PGHOME=/usr/pgsql-9.6$ export PATH=$PGHOME/bin:$PATH:.$ make USE_PGXS=1$ make USE_PGXS=1 installpsql -U postgres -d exampledb -h 127.0.0.1 -p 5432then exeute the sql.create extension imgsmlr;檢視下\dx命令檢視所有已安裝的擴充套件模組然後執行CREATE TABLE pat AS (SELECT id, shuffle_pattern(pattern) AS pattern, pattern2signature(pattern) AS signature FROM ( SELECT id, jpeg2pattern(data) AS pattern FROM image) x );記得結束加分號The idea is to find top N similar images by signature using GiST index. Then find top n (n < N) similar images by pattern from top N similar images by signature.參考下一步需要測試增量新增圖片

相關推薦

PostgreSQL視訊 圖片系列1

PostgreSQL 在視訊、圖片去重,影象搜尋業務中的應用圖片搜尋PostgreSQL的影象搜尋外掛使用了非常主流的Haar wavelet技術對影象進行變換後儲存gist 索引方法(支援pattern和signature型別), 以及KNN操作符,可以用於搜尋相似度1,建

Js中除數組中復元素的幾種方法

method fun eth bsp class prot return index 方法 方法1: 1 Array.prototype.method1=function(){ 2 var arr=[]; 3 for(var i=0;i<this.l

excel 走自己的“錄”,讓別人

完成 就會 遇到 .com www. 數據 exce 如果 https   對於excel文檔,有時我們會遇到很多重復性的操作,如果數據量很大的話往往會花費我們大量的時間,並且一不小心就會弄錯,此時我們就可以錄制我們自己的宏,讓它按照某種路線自動完成。

Java常見算法(一):

IT OS mage class 叠代 集合 size wid emp (一)去重 1.1 去重復() ①:建一個新的集合temp ②:再建傳入集合的叠代器,調用it.hasNext()。 ③:再用temp.contains("e")方法判斷---->true it.

Java中對List, Stream

phi let 定位 print hvr spl javadoc arrays 真的 每天學習一點點 編程PDF電子書、視頻教程免費下載:http://www.shitanlife.com/code 問題 當下互聯網技術成熟,越來越多的趨向去中心化、分布式、流計算,

JS-刪除連續復的值

pre cti remove con style 字母 move bsp 連續 function removeRepetition(str) { var result = "", unStr;

js陣列扁平化

陣列去重 var arr = [1, 43, 4, 3, 2, 4, 3]; // 去重後 arr = [1, 43, 4, 3, 2] 傳統方法,for迴圈實現 function dedupe(arr) { var rets = []; f

除數組中復的元素

style 數組a span () nbsp arr 數組 UNC clas 1 var arr = [1,2,3,4,5,6,1,2,3,11,1,2,3]; 2 3 var arr2 = neaten_arr(arr); 4 5 function nea

MySql資料查的實現

假設有一個表user,欄位分別有id–nick_name–password–email–phone,分情況如下(注意刪除多餘記錄時要建立臨時表,不然會報錯): 一、單欄位(nick_name) 1、查出所有有重複記錄的所有記錄 select * from user w

中心Redis-Cluster規範(三)-定向和雜湊

去中心Redis-Cluster規範(三) 本文翻譯自官方文件 重定向和重雜湊 MOVED重定向 Redis客戶端可以自由想叢集內的任何節點(包括從節點)傳送查詢指令.收到指令的節點會分析查詢指令,如果指令可接受(查詢指令中只有一個key,或者多

python元素如何後如何保持原來元素的順序不變

python列表元素去重後如何保持原來的順序不變    原列表:        list1 = [1,2,1,4,9,3,5,2,6,7,3,1,6,8,4,0]    去重,使用集合set來去重:        list2 = list(set(list1)    set去

陣列空,

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>qc</title> <scrip

python 列表的3方法

方法1# coding=utf-8#定義一個字典,將列表重複的字數作為value值,將列表的元素作為鍵值,存入字典中#打印出字典#將字典的鍵值轉化成列表2,即完成了列表去重list1=[1,1,2,2,3,3,3,4,4,4,4,5,5,5,5,6,6,6,11,12,12]

list字串的三種方式 list 字串

list字串去重的三種方式 求List< String >中元素去重,並且求出去重後的個數 採用原始的for迴圈遍歷 採用set集合的特點 採用Java8流處理方式 package sun.rain.amazing.stream;

sql語句,以及排序

今天在建表並往表裡新增資料時,不小心將資料重複上傳了,也沒有按順序如下圖: ,看著極度不爽,也就想著可不可以修改一下表,刪除掉重複的資料,且根據欄位node_id 從小到大順序排列,於是首先想到的是

PHP一維陣列快速

1、一維陣列去重: 1 /** 2 * 一維陣列去重,返回格式為索引陣列 3 * @param array $data 待去重的陣列 4 * @return array 5 */ 6 public static function arrayUnique

[轉摘]圖像復原(圖片噪與模糊)-低級圖像處理/視覺任務

ted miss gin 去模糊 eight 密度 第一個 lan data- [轉摘自知乎]鏈接:https://www.zhihu.com/question/272305330/answer/366831382 去除雨滴,去霧,去除噪聲,去塵土和去模糊等都是這一類的,

postgresql排序分頁時數據復問題

pos sql排序 上一頁 order by 可能 ron post 記錄 postgre 當同時排序又分頁時,如果排序的字段X不是唯一字段,當多個記錄的X字段有同一個值時順序是隨機的。 這個有可能造成分頁時數據重復的問題。某一頁又把上一頁的數據查出來了,其實數據庫只有一條

CSDN部落格圖片水印

最近發現CSDN部落格的圖片有什麼奧祕。 https://img-blog.csdn.net/20170324133015320?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQzIwMTgwNjMw/font/5a6L5L2T/f

如何簡單的操作圖片文字識別

  相信很多人不管在生活或者是工作中,經常遇到圖片文字識別的問題,那有什麼比較簡單的操作方法呢?下面小編就來為大家分享一下。   使用工具:   電腦   迅捷OCR文字識別軟體   實用係數:☆☆☆☆☆   推薦理由:軟體採用先進的OCR識別技術,識別精度高,能夠輕鬆實現文件數字