Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.12;
Скачать: CL | DM;

Вниз

Поиск похожих jpg   Найти похожие ветки 

 
Чародей ©   (2006-10-22 12:08) [0]

Написал программку для поиска схожих jpg картинок. Если кого-то интересует то:
http://www.webfile.ru/1159828 (src D6 ~ 130Kb ). Интересуют предложения по оптимизации(да и вообще ваши мысли по поводу), а то у меня скорость получается очень медленная.


 
ANTPro ©   (2006-10-22 12:15) [1]

> [0] Чародей ©   (22.10.06 12:08)
>поиска схожих jpg картинок

И как определяется схожесть?


 
Чародей ©   (2006-10-22 12:20) [2]


> И как определяется схожесть?

4 процентными параметрами соответствия. Я выложил исходники, там и посмотреть можно


 
Ketmar ©   (2006-10-22 12:25) [3]

а можно куда-то на нормальный хостинг? недружба у меня с "выбфиле" %-(


 
ANTPro ©   (2006-10-22 12:26) [4]

> [2] Чародей ©   (22.10.06 12:20)
> 4 процентными параметрами соответствия

Кажись я на шел тему для своего курсовика ;)


 
Чародей ©   (2006-10-22 12:34) [5]


> Ketmar ©   (22.10.06 12:25) [3]
> а можно куда-то на нормальный хостинг? недружба у меня с
> "выбфиле" %-(

А что есть нормальный хостинг?


 
Ketmar ©   (2006-10-22 12:36) [6]

>[5] Чародей(c) 22-Oct-2006, 12:34
>А что есть нормальный хостинг?
да любой халявный. хоть "народру". %-)


 
ANTPro ©   (2006-10-22 12:38) [7]

> [5] Чародей ©   (22.10.06 12:34)
> А что есть нормальный хостинг?

slil.ru


 
Ketmar ©   (2006-10-22 12:40) [8]

>[7] ANTPro(c) 22-Oct-2006, 12:38
>slil.ru
"слив защитан". %-)


 
Чародей ©   (2006-10-22 12:44) [9]

http://slil.ru/23285500
с народом чет не понял


 
Virgo_Style ©   (2006-10-22 13:08) [10]

C ImgSearch (c) by Vladimir Kladov сравнивал?
Негативы, разные размеры отлавливает?

P.S. Вот бы кто написал такое для MP3...


 
Ketmar ©   (2006-10-22 13:11) [11]

>[10] Virgo_Style(c) 22-Oct-2006, 13:08
>P.S. Вот бы кто написал такое для MP3...
тебе и Delphi в руки %-)


 
Чародей ©   (2006-10-22 13:17) [12]


> C ImgSearch (c) by Vladimir Kladov сравнивал?

Нет.
> Негативы, разные размеры отлавливает?

Негативы нет (хотя я это запомню!).
Разные размеры - да. Поиск не идентичных, а похожих.
Поиск идентичных картинок, вооюще не имеет смысла(это и ACDSee умеет).


 
Kerk ©   (2006-10-22 13:36) [13]

> [0] Чародей ©   (22.10.06 12:08)

Стукни мне в аську плиз


 
Ученик чародея.   (2006-10-22 14:35) [14]

Попробуй на них БПФ натравить преобразовав все сперва в оттенки серого(1 байт) или же в отдельную матрицу. А затем сравнивать уже спектры.

Для Delphi код можно взять здесь http://alglib.sources.ru/fft/fft.php но там только одномерное преобразование, а вот для C здесь http://www.fftw.org/


 
@!!ex ©   (2006-10-22 14:42) [15]


> Virgo_Style ©   (22.10.06 13:08) [10]
> C ImgSearch (c) by Vladimir Kladov сравнивал?
> Негативы, разные размеры отлавливает?
>
> P.S. Вот бы кто написал такое для MP3...


50$


 
Virgo_Style ©   (2006-10-22 14:51) [16]

Ketmar ©   (22.10.06 13:11) [11]
тебе и Delphi в руки %-)


Чего доброго, и правда когда-нибудь возьмусь. Но не в ближайшее время однозначно...

@!!ex ©   (22.10.06 14:42) [15]
50$


imho ты довольно дешево просишь =) Хотя навскидку я уже не припомню, сколько стоят пакеты, обещающие такую фишку. Но я бы за такую цену вряд ли взялся.


 
Chort ©   (2006-10-22 15:03) [17]


> Чародей ©   (22.10.06 12:08)  

попробовал запустить скан на весь диск(D) - так забрало 80% памяти(нужно было брать один поток). прога хорошая, нужно подкоректировать выбор диска, директории(метод тыка, а не метод прописи)


 
Чародей ©   (2006-10-22 15:09) [18]


> Chort ©   (22.10.06 15:03) [17]
>
> > Чародей ©   (22.10.06 12:08)  
>
> попробовал запустить скан на весь диск(D) - так забрало
> 80% памяти(нужно было брать один поток). прога хорошая,
> нужно подкоректировать выбор диска, директории(метод тыка,
>  а не метод прописи)

80% какой памяти? Объем выделяемой памяти регулируется размером кеша.
>  метод тыка,  а не метод прописи
Вообще не понял


 
ANTPro ©   (2006-10-22 15:12) [19]


> [18] Чародей ©   (22.10.06 15:09)
> Вообще не понял

Выбирать, а не писать?


 
Chort ©   (2006-10-22 15:22) [20]


> 80% какой памяти? Объем выделяемой памяти регулируется размером
> кеша.


я протупил: сначала запустил скан, потом увидел про кеш

> Вообще не понял

DriveComboBox ,DirectoryListBox и в том же духе. мОжно FolderList
var
 Dir: string;
begin
 Dir:="";
 if OpenDirDialog("Select a folder to scan", Dir) and
    (FoldersList.Items.IndexOf(Dir)<0) then begin
     FoldersList.ItemIndex:=FoldersList.Items.Add(Dir);
 end;
end;


 
Чародей ©   (2006-10-22 15:33) [21]

Тьфу, блин. Я интерфейс вообще не делал, так наброски чтобы было видно результаты (там еще очень много чего не так и кнопки нажимать аккуратно и во время скана лучше ничего не трогать).
Мня интересует возможность ускорения работы. А то 1500 картинок ~ 5 часов :\(


 
ANTPro ©   (2006-10-22 15:51) [22]

> [21] Чародей ©   (22.10.06 15:33)
> Мня интересует возможность ускорения работы

Что именно тебя не устраивает?
Где теряется скорость?


 
Чародей ©   (2006-10-22 16:16) [23]

Основная потеря из-за "пузырькового метода" (т.е. каждая картинка со всеми последующими). Загрузку и сравнение более-менее ускорил по 20 мс (IJL + DIB + asm) против по 200мс стандартными средствами (jpeg + ScanLine); и еще немного выигрывается за счет кеша и двух потоков, хотя последнее дает несколько сомнительные результаты(может я не правильно использую возможности двух потоков?). возможно дадут результаты какие-либо предвыборки, сортировки? Интересно мнение тех кто сталкивался с подобными вопросами


 
ANTPro ©   (2006-10-22 16:21) [24]

> [21] Чародей ©   (22.10.06 15:33)
> 1500 картинок ~ 5 часов :\(

Теоритчески так и получается
Оптимизировать можно только алгоритм
ЗЫЖ Алгоритм в студию :)


 
@!!ex ©   (2006-10-22 16:21) [25]

Не видел кода, влом качать. смотреть... Да и некогда особо...
Но есть предложение, которое у тебя возможно не реализованно.
Два потока:
1 - Сверяет две картинки
2 - загружает следующую картинку.

Теоретически должно очень все это дело ускорить, так как задействованны разные ресурсы.

Virgo_Style ©   (22.10.06 14:51) [16]

Там же все тупо и банально.
Сверка аудио потока довольно тревиальная задача, насколько мне известно.


 
Virgo_Style ©   (2006-10-22 16:27) [26]

@!!ex ©   (22.10.06 16:21) [25]
Там же все тупо и банально.
Сверка аудио потока довольно тревиальная задача, насколько мне известно.


Не знаю, я довольно далек от предмета обсуждения, однако сомневаюсь, что причиной отсутствия таких программ является банальность и тривиальность алгоритма.


 
@!!ex ©   (2006-10-22 16:34) [27]


> Virgo_Style ©   (22.10.06 16:27) [26]

Уверен, что они отсутствуют? :))


 
Ученик чародея ©   (2006-10-22 16:37) [28]


> @!!ex ©   (22.10.06 16:21) [25]
> Virgo_Style ©   (22.10.06 14:51) [16]
>
> Там же все тупо и банально.
> Сверка аудио потока довольно тревиальная задача, насколько
> мне известно.


Угу, как и распознавание изображения и речи. Сдвиг на 1 сек и у тебя 2 разных mp3. Проверка схожести Mp3 производится по тегам в файле, как имя песни/альбома/автора...


 
@!!ex ©   (2006-10-22 16:45) [29]


> Угу, как и распознавание изображения и речи.

Давно решенные задачи.


> Сдвиг на 1 сек и у тебя 2 разных mp3

Почему??
Все это опциоанльно. И свдиг можно проверять и все остальное.


> Проверка схожести Mp3 производится по тегам в файле, как
> имя песни/альбома/автора...

Кто сказал? :))
Как хочу так и проверяю. ;)


 
Gero ©   (2006-10-22 16:47) [30]

> [29] @!!ex ©   (22.10.06 16:45)


> Давно решенные задачи.

А мужики-то не знали (c)


 
Gero ©   (2006-10-22 16:48) [31]

> [29] @!!ex ©   (22.10.06 16:45)

Ты занимался этим? У тебя есть пример, который делает подобное?


 
Gero ©   (2006-10-22 16:49) [32]

> [29] @!!ex ©   (22.10.06 16:45)

Не, насчет давно решенных задач — до сих пор смеюсь!


 
@!!ex ©   (2006-10-22 16:51) [33]


> Gero ©   (22.10.06 16:48) [31]


50$


> Gero ©   (22.10.06 16:49) [32]

Распознавание изображения используеются в современных системах наведения(Ракет в частности).

С распознаванием речи без проблем справляется Dragon всего через 2 месяца обучения.


 
Gero ©   (2006-10-22 17:06) [34]

> [33] @!!ex ©   (22.10.06 16:51)

Это означеет, что свои слова ты подтвердить не можешь?

> Распознавание изображения используеются в современных системах
> наведения(Ракет в частности).

И как далеко оно зашло? Если я покажу несколько своих фотографий или портретов — система сможет определить, что это я?

> С распознаванием речи без проблем справляется Dragon всего
> через 2 месяца обучения.

А я справляюсь с распознаванием твоей речи моменально. Так что тут насчет давно решенной проблемы?


 
Chort ©   (2006-10-22 17:06) [35]


> С распознаванием речи без проблем справляется Dragon всего
> через 2 месяца обучения.

можно поподробнее?


 
@!!ex ©   (2006-10-22 17:10) [36]


> Это означеет, что свои слова ты подтвердить не можешь?

ПОчему не могу? Могу. 50$


> И как далеко оно зашло? Если я покажу несколько своих фотографий
> или портретов — система сможет определить, что это я?

Не имею практики в данном вопросе, но смею предположить что с некторой точнотью предположит.


> А я справляюсь с распознаванием твоей речи моменально. Так
> что тут насчет давно решенной проблемы?

А типо когда ты в детстве учился говорить и понимать мы за обучение считать не будем?


> Chort ©   (22.10.06 17:06) [35]

Что конкретно?


 
Chort ©   (2006-10-22 17:17) [37]


> Что конкретно?

о программе.Что это за прога(в поиске выдает раскидалку игр, рок группу)


 
Чародей ©   (2006-10-22 17:22) [38]


> Алгоритм в студию :)

Выкладывать примерно 600 строк как-то многовато.

> Два потока:
> 1 - Сверяет две картинки
> 2 - загружает следующую картинку.

Сравнение гораздо быстрее загрузки поэтому 1 будет постоянно ждать 2.

Что-бы уменьшить влияние времени загрузки был добавлен кеш и все сравнения происходят в памяти. т.е. допустим есть 4 картинки, тогда общая схема сравнения будет выглядеть так:
1 2 3 4
 1 2 3
   1 2
     1
Сравнение происходит 1L-2L, 1-3L, 1-4L, 2L-3L, 2-4L, 3L-4L. L - означает загрузку из файла.
При использовании кеша:
Допустим в кеш уместились картинки 1 и 2, тогда схема получается:
L1,L2, 1-2, 1-3L, 2-3, 1-4L, 2-4, сброс кеша, L3, L4, 3-4
При большом размере кеша выигрыш получается существенный.
А потоки используют одну и туже процедуру, по с разными параметрами индекса в полном списке найденных файлов.


 
ANTPro ©   (2006-10-22 17:28) [39]

> [38] Чародей ©   (22.10.06 17:22)
> Выкладывать примерно 600 строк как-то многовато.

Алгоритм не код? Можно сжать и положить...


 
Gero ©   (2006-10-22 17:28) [40]

> [36] @!!ex ©   (22.10.06 17:10)

Ты мне ценник свой не суй, ляпнул, а теперь пытаешься отмазаться. Я не предлагал тебе ничего писать, а конкретно спросил, и спрашиваю еще раз: «Ты занимался этим? У тебя есть пример, который делает подобное?». Ты в состоянии ответить на этот вопрос?
Если тебе так хочется выпонить программу, я могу заплатить тебе 50$ за программу которая будет показывать процент схожеcти звучания mp3-файла при разумных сроках, но если ты с заданием не справишься, ты платишь мне 5000$. Идет?

> Не имею практики в данном вопросе

С этого и надо было начинать.

> А типо когда ты в детстве учился говорить и понимать мы
> за обучение считать не будем?

Будем. Разработчики программы, думаю, тоже на месте ине видели и усиленно ее учили.
Но стоит также считать и то, что я могу распознать любую речь, а программа — только определенную, ту, которую в нее 2 месяца вдалбливали.



Страницы: 1 2 вся ветка

Текущий архив: 2006.11.12;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.031 c
1-1159514151
Jakudza
2006-09-29 11:15
2006.11.12
Как записать/прочитать значение цвета в реестр


2-1161678395
JTAG
2006-10-24 12:26
2006.11.12
Добрый день, подскажите пожалуйста при помощи каких функция


15-1161932239
Сало
2006-10-27 10:57
2006.11.12
Про телевидение


2-1161758334
yel
2006-10-25 10:38
2006.11.12
GLScene хочет Python_d7 и dws2Runtime


2-1161775849
KyRo
2006-10-25 15:30
2006.11.12
Код Enter