Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];

Вниз

Поиск похожих 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.56 MB
Время: 0.037 c
5-1142836091
Muchacho
2006-03-20 09:28
2006.11.12
получить имена всех свойств и методов данного класса


2-1161697308
Дева
2006-10-24 17:41
2006.11.12
Перемещение в TDBGrid


15-1161552124
RASkov
2006-10-23 01:22
2006.11.12
Посмотрите


2-1161690832
B_Yuriy
2006-10-24 15:53
2006.11.12
Delphi


1-1159707242
RASkov
2006-10-01 16:54
2006.11.12
RectToObject и наоборот





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский