Saturday, 25 February 2012

Нейронні мережі

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

Прочитавши одну книгу, я створив невелику нейронну мережу "навчив" її розпізнавати літери "А", "В" та "С". І вона таки їх вивчила! Навіть, якщо зображення трохи відрізнялось від тренувального, нейронна мережа давала правильний результат.

Ця перша реалізація була невелика та обмежена. Щоб додати ще один схований шар, було необхідно багато чого переписувати, тому я вирішив почати все з початку і створити більш гнучку нейронну мережу, яку можна було б легко модифікувати, додавати різні алгоритми навчання, різні типи нейронних мереж.

Так народився проект "BrysonNet", який знаходиться тут.

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

Вивчення нейронних мереж зупиняє на деякий час написання статті про пошук лінії між двома сторінками, яка слідує прямо за цією. Це викликано тим, що при використанні нейронних мереж можливо б було набагато покращити результат.


Wednesday, 22 February 2012

Що я слухаю

Недавно зайшов на last.fm і побачив, що я вже зареєстрував там більше 30000 пісень! (30000*5хв на одну пісню / 60 хвилин в одній годині / 24 години в одній добі = більше 104 днів - третина року!) Цікавий факт.

Last.fm пропонує ще цікавішу статистику.

Пісні, які найчастіше прослуховувалися:

№ в рейтингу Виконавець - назва К-ть прослуховувань
1 Eric Clapton – Wonderful Tonight 110
2 Guns N' Roses – November Rain 65
3 Eric Clapton – Running on Faith 64
4 Skid Row – 18 And Life 58
5 Бумбокс – Квіти в волоссі 55
6 Eric Clapton – Tears In Heaven 54
7 Океан Ельзи – Не питай 53
8 A Fine Frenzy – Whisper 52
9 Kid Cudi – Alive (Nightmare) (feat. Ratatat) 52
'10 The Verve Pipe – The Freshmen 51
11 Pete Yorn – Lose You 50
12 Elton John – Rocket Man 49
13 Cory Chisel and The Wandering Sons 49
14 Бумбокс – Ким ми були 48
15 Mötley Crüe – Home Sweet Home 47

Цікаво дізнатися, що і скільки разів ти слухав.

P.S. Це не реклама сервісу Last.fm!

Wednesday, 8 February 2012

Цитата

Незрілій людині властиве прагнення благородно вмерти за свою справу, а зрілій - прагнення покірно жити задля своєї справи.
Вільгельм Штекель

Вірші

Ніколи не розумів навіщо в школах змушують вивчати вірші. Що оте сидіння й зубріння дасть людині? Знання? Та які ж тут знання? Мені ще жоден вивчений мною вірш, яких було небагато, нічим не пригодився та й не пригодиться, я впевнений!
Хіба що можна показати який ти офігенний, процитувавши якогось вірша. Та офігенність - мрія не кожного.
Взагалі-то мені навіть читати вірші не подобається. Не люблю коли мало написано. Мені набагато краще прочитати величезний прозовий твір, ніж один невеличкий вірш. Мабуть тому, що погана в мене фантазія, а у віршах потрібна ох яка ж фантазія щоб все було зрозумілим...

Thursday, 26 January 2012

Обробка зображень / Пошук межі зображення

У першій частині я привів теоретичні відомості для всіх потрібних операцій.
У другій частині я привів бібліотеки, якими я користувався.
Для вирішення цієї задачі знадобляться фільтри, які я вибирав на логічній основі:

В результаті обробки необхідно отримати бінарне зображення, на якому, наприклад, фон буде чорним, а зображення – білим, чи навпаки. Причому, в межах фону не повинно бути іншого кольору (сміття).

Видалення сміття виконується фільтром BlobsFiltering, в який передається розмір сміття (garbageSize).

Спочатку, використовуючи засоби бібліотеки FreeImage, зображення робиться чорно-білим (не бінарним!). Цього вимагають фільтри бібліотеки AForge.Net.

Для бінарізації зображення найкраще підходить SISThreshold.

Далі зручно використати детектор кутів SusanCornersDetector. Після обробки зображення детектором кутів отримується набір цікавих нам точок – потенційних меж зображення.

Для отримання об’єкту Rectangle необхідні: координата Х та Y (верхнього лівого кута прямокутника), ширина та довжина. Координата Х – це мінімальна точка по координаті Х, Y – по координаті Y. Ширину та довжину можна без проблем знайти.

Лістинг коду для пошуку межі зображення:
public static Rectangle Process(Bitmap img, int garbageSize, int outlineValue)
{
    Bitmap image = null;
    if (img == null) throw new ArgumentNullException("img");
    try
    {
        FIBITMAP medium = FreeImage.CreateFromBitmap(img);
        medium = FreeImage.ConvertColorDepth(
            medium, FREE_IMAGE_COLOR_DEPTH.FICD_08_BPP |
            FREE_IMAGE_COLOR_DEPTH.FICD_FORCE_GREYSCALE);
        image = FreeImage.GetBitmap(medium);
        var filter = new BlobsFiltering
        {
            CoupledSizeFiltering = false,
            MinWidth = garbageSize,
            MinHeight = garbageSize
        };
        filter.ApplyInPlace(image);
        var sis = new SISThreshold();
        sis.ApplyInPlace(image);
        var scd = new SusanCornersDetector();
        List<IntPoint> edges = scd.ProcessImage(image);
        int x = edges.Min(p => p.X);
        int y = edges.Min(p => p.Y);
        int width = edges.Max(p => p.X) - x;
        int height = edges.Max(p => p.Y) - y;
        var rect =
            new Rectangle(
                x + outlineValue,
                y + outlineValue,
                width - outlineValue * 2,
                height - outlineValue * 2
                );
        return rect;
    }
    finally
    {
        image.Dispose();
    }
}

Wednesday, 25 January 2012

Так воно і є.

Дуже хороший і правдивий напис :)
Геть негарно коли дівчина палить.

Thursday, 19 January 2012

Було діло...

Мандруючи по сайту своєї гімназії, я знайшов цікаве фото:
 
Таки третя людина, то я :)
Це діло було у 2007 році. Ми здобували професію "Оператор комп'ютерного набору".
Не думав, що хоч щось збереглось звідти.

Thursday, 29 December 2011

Взаєморозуміння

Взаєморозуміння. Таке довге слово, яке багато значить.

У вас було таке, що ви розуміли абсолютно все, що каже ваш співбесідник? Все до дрібних деталей? Кожен жарт, сарказм?

Мені от стало цікаво чому так виходить. Особливо це цікаво у випадку людей, які виросли у різних точках нашої країни (чи Землі). Для цього, я думаю, необхідний був дуже схожий інтелектуальний розвиток у двох людей, який би включав перегляд тих самих фільмів чи мультфільмів, знайомство з історією, математикою, інформатикою, логікою, філософією та іншими науками.

Спільний інтелектуальний рівень - дуже рідкісне явище, але коли воно спостерігається - це найдивовижніша подія у житті. Про таке кажуть: "Вони розуміють один одного з половини слова". І це справді чудово.

Даний запис не має чітко визначеного смислу, а лише відражає мої поточні відчуття та почуття. Якщо хтось не розуміє - значить в нього поки-що немає таких почуттів/відчуттів (К.О. був тут).

Sunday, 25 December 2011

Відсутність сили

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

Наука. Я "обома руками за" за Науку. Вона спрощує нам життя. Вона протистоїть дитячим казкам під назвою "релігія". Вона дозволяє (дозволить, я б сказав) дізнатись таємницю Всесвіту.

Та все ж, я не можу з усім погодитись з Наукою. Вона занадто спрощує наше життя. Здавалося б, що в цьому поганого? Чим легше нам жити, тим слабкіші ми стаємо. Зараз всі люди занадто впевнені в собі. Всі думають, що всі вони - королі природи. Що вони можуть правити всім і вся. Я віддав би все за можливість поспостерігати за однією такою людиною, яка б потрапила у африканську савану, наприклад. Хотів би я подивитись на нього, на таке величне, найсильніше створіння на Землі, якому немає рівних. Думаю, довго б ця людина не протрималась: чи сонце, чи леви, чи малярія зроблять природний відбір дуже швидко і залишиться найсильніший. І я не думаю, що серед сильніших залишиться "сучасна" і "всесильна" людина.

Зараз в деяких куточках нашої планети живуть племена людей, яких не зачепила Наука. Хоч вони і здаються відсталими, тупими, та вони б вижили у надзвичайних ситуаціях. Вони завжди готові до найгіршого через те, що вони постійно живуть у страху за своє життя, а загроз у ньому багато. 

Вони вірять у різні божества, але їхні божества не такі слабкі, як християнський бог. В них все просто. Все просто, так як і у тварин. а чим ми відрізняємося від тварин? А нічим (прихильників Адама і Єви я шлю далеко і надовго)! Ми дуже далеко розвинулись від тварин і це погано. Для тварини найголовніше - зберегти своє життя і дати потомство. Сьогодні ж близько 1100000 людей у світі закінчують самогубством і менше ніж потрібно тих, хто хоче дати потомство, більшість хоче тільки розважитись. Дві смуги на тесті з вагітності - найгірший вирок для більшості. Дві смуги означають або аборт, або "кінець" нормального життя.

Якісь два дебіли телефонують своєму товаришу Джефу.
- Ей, Джеф, ми з друзями збираємось на рибалку. Ти з нами?
Камера наїжджає на Джефа, він робить сумну гримасу, погойдуючи дитину на руках.
- Ні не можу, в мене дитина!
Далі йдуть фрази про те, що якби Джеф використав презерватив, то всього цього б не було і він спокійно б пішов на рибалку з друзями.

Такі слова чують американські підлітки у вищих школах. Насправді ці фільми про необхідність контрацепції, але такі фрази залишають неприємний осад у голові людини.

Ми відмовилися від своєї сили заради зручностей. Ми вже не сильні. Бути сильним при наявності певних засобів (пістолет, рушниця, Інтернет і т.д.) - не значить бути сильним. Одного разу я сказав класне речення: "Я краще взяв би палку і пішов би на полювання, ніж сидів би цілий день в Інтернеті". Та так воно і є.

Але що я можу зробити? Більш за все, я закінчу "войовничим відчаєм" чи "тихою покорою долі", та ці два фінали нічим не відрізняються...

Sunday, 18 December 2011

Отаке от воно...

Тут нічого не буде зрозуміло тим, хто не шарить. Вибаче!

Тетяно, вибач мене!
Ірино, вибач мене!
Світлано, вибач мене!

Все склалося не так, як хотілося. Якби я міг повернути час назад, я б усе виправив, але...але я не можу. От і залишається жалкувати про незроблене, але жалкування про незроблене не має сенсу. Та більш нічого не залишається!

Тетяно, я хотів би не казати того, що я сказав.

Ірино, я хотів би сказати більше, ніж я сказав.

Світлано, я хотів би зустрітися, коли була можливість.

От цікаво, даний список поповниться новими іменами? Надіюсь, що ні.

Просто так буває: робиш неправильний (дійсно неправильний?) вчинок, не подумавши, і все руйнується хочеш ти цього чи ні. Щось було, ХОП і нічого більш немає. А чому воно так буває, я й не знаю кого питати. Себе? Я відповіді не знаю!