Пам’ятаєте сканер номерних знаків у 86 мільйонів доларів, який я відтворив? Я зловив когось цим.

Пам’ятаєте сканер номерних знаків у 86 мільйонів доларів, який я відтворив? Я зловив когось цим.

Кілька тижнів тому я опублікував, на мою думку, тоді досить нешкідливу статтю: Як я відтворив проект у 86 мільйонів доларів у 57 рядках коду.

Я зізнаюся - це було досить претензією на приманку. Я, по суті, говорив, що відтворив ту саму технологію сканування та перевірки номерних знаків, за яку поліція у Вікторії, Австралія, заплатила 86 мільйонів доларів.

Відтоді реакції були надзвичайними. Моя стаття отримала понад 100 000 переглядів за перший день, і, на останній погляд, десь близько 450 000. Мене запросили виступити в місцевих радіо-шоу та на конференції в Каліфорнії. Я думаю, хтось, можливо, неправильно прочитав Вікторію, штат Аудіо, як Вікторію, Британська Колумбія

Хоча я ввічливо відхилив ці пропозиції, я зустрічався за кавою з різними місцевими розробниками та відомими фірмами. Це було неймовірно захоплююче.

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

Педанс вказував на відсутність підготовки, підтримки та звичайних корпоративних ІТ-підкладок, але не варто нікому витрачати час на їх вивчення. Я волів би провести цю публікацію, дивлячись на мої результати і на те, як інші можуть скоротити свою власну точність.

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

Почалося з настирливої ​​думки, що оскільки OpenCV існує, а на веб-сайті VicRoads є перевірки номерних знаків, повинен існувати спосіб поєднати ці два або використати щось краще.

Лише коли я розпочав запис, я натрапив на BlueNet. Відкриття BlueNet та його цінника дало мені чудовий редакторський кут із уже написаним кодом. Між проектами мали бути певні невідповідності.

Я також вважаю, що частиною причини, що спричинила це, був зручний час складання звіту про марнотратні державні ІТ-витрати в Австралії. Законопроект Федерального уряду з питань ІТ зріс з 5,9 до 10 млрд доларів, і це забезпечило сумнівну вартість цього викиду. Дослідники засобів масової інформації, які зв’язалися зі мною, швидко зв’язали ці два, але я не швидко заохочую це.

Застереження

У дусі прозорості я повинен заявити про те, чого також не було в оригінальній публікації. Мій попередній роботодавець надав менші (менше 1 мільйона доларів) ІТ-проекти для поліції Вікторії та інших державних органів. Як результат, я пройшов поліцейські перевірки та заповнив форми, необхідні для того, щоб стати підрядником VicPol.

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

Візуалізація результатів

Далі наведено відеопрезентацію моїх результатів, складену в After Effects для трохи задоволення. Я записав різні пробні кадри, і це був найуспішніший кліп.

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

Етична дилема

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

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

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

Крім того, водій транспортного засобу цілком може бути злочинцем, якого ми підозрюємо.

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

Зрештою, водія було виявлено за прототипом лише поліцейського пристрою. Але керування реєстрацією 2016 року (скасованою, не закінченою) закінчилося цілком навмисно. Хм

Повернутися до результатів

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

Через це деякі натякали на те, що я вибрав свої вихідні зображення. На це я можу сказати лише: "Ну, гаразд".

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

Зрештою, дуже просто взяти крихкий доказ концепції та розбити його. Справжні інновації та виклики випливають із того, що ви взяли доказ концепції та змусили її працювати . Протягом моєї професійної кар’єри багато старших розробників говорили мені, що щось не можна зробити або, принаймні, не можна зробити своєчасно. Іноді вони мали рацію. Часто вони просто не хотіли ризикувати.

"Нічого неможливого поки не буде доведено".

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

Оптимальні налаштування камери ALPR

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

Оптичне збільшення

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

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

Усі камери, якими я мав у своєму розпорядженні, мали нерухомий об’єктив. Вони включали:

  • Екшн-камера Contour HD. Вони вийшли у 2009 році, і я використовую свої, щоб записати свої поїздки на велосипеді та відтворити досвід смертного життя майже кожного тижня.
  • Fujifilm X100S (відомий фіксований основний об'єктив)
  • Мій iPhone 6+

Рекомендований тестовий запуск був записаний на мій телефон. Моїм єдиним методом реплікації оптичного масштабування було використання програми для запису у 3K замість 1080p, а потім цифрове масштабування та обрізання. Знову ж таки, більше пікселів для гри.

Кут та позиціонування

Кут огляду 30 ° часто називають стандартом для ідеального розпізнавання пластини. Це неймовірно важливо, коли ви дізнаєтесь, що BlueNet використовує безліч камер. Це також має сенс, якщо врахувати, що взагалі бачить фронтальна камера - не дуже.

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

Гімбал

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

Інші важливі фактори

Частота кадрів

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

Але я також тестував досить низькошвидкісні кадри. Максимум два автомобілі, що проїжджали один одного в зоні 60 км / год, створювали диференціал 120 км / год. З іншого боку, BlueNet може працювати до передбачуваних 200 км / год.

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

Я розглядав використання OpenCV (node-opencv) для розпізнавання об’єктів, але я знайшов щось простіше, наприклад, розпізнавання обличчя, яке займає від 600 до 800 мс. Не тільки менше, ніж ідеально підходить для мого використання, але й загалом досить бідний.

На допомогу приходить хайп-поїзд TensorFlow. Є можливості для запуску на пристрої, є приклади проектів, що ідентифікують кілька транспортних засобів на кадрі із вражаючими 27,7 кадрів в секунду. Ця версія може навіть виставляти оцінки швидкості. Юридично нікудишний, але, можливо, корисний у повсякденній поліцейській роботі (в readme немає еталону fps)

Щоб краще пояснити, як високоефективне розпізнавання автомобіля може поєднуватися з більш повільними методами ALPR, я створив ще одне відео в After Effects. Я уявляю, що ці дві працюючі руки в руці виглядатимуть приблизно так:

Частота кадрів проти швидкості затвора

На різний прояв частоти кадрів значною мірою впливає витримка затвора, а конкретніше, проблеми з рухомим затвором, які мучать ранні або низькі цифрові відеомагнітофони. Далі наведено знімок деяких кадру Contour HD. Ви бачите, що лише 60 км / год проблема з рулонними затворами робить кадри більш-менш непридатними з точки зору ALPR.

Налаштування частоти кадрів як на Contour HD, так і на моєму iPhone не призвело до помітно менших спотворень. Теоретично, вища витримка затвора повинна створювати чіткіші та чіткіші зображення. Вони ставали б все більш важливими, якби ви переслідували показник BlueNet на швидкості 200 км / год. Менша розмитість і менше спотворення затвора в ідеалі призвели б до кращого зчитування.

Відкрити версію ALPR

Одним з найцікавіших відкриттів було те, що версія node-openalpr, яку я використовував, застаріла і не настільки потужна, як їхнє власне рішення. Хоча вимога до відкритого коду, безумовно, була фактором, було дивно, наскільки точно хмарна версія могла успішно читати кадри, на яких я навіть не міг ідентифікувати табличку.

Дані про навчання в країнах ALPR

Я також виявив, що основний пакет node-openalpr за замовчуванням обробляє країну США, не маючи можливості його замінити. Ви повинні витягнути чужу вилку, що дозволяє надавати додатковий параметр країни.

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

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

Площинні перекоси

Open ALPR постачається з одним конкретним інструментом для зменшення впливу спотворень як з боку кута камери, так і з-за проблем із рухомим затвором. Площинна деформація відноситься до методу, при якому координати передаються в бібліотеку для перекосу, перекладу та обертання зображення, поки воно не буде дуже схоже на пряму пластину.

За мій обмежений досвід тестування я не зміг знайти площину деформації, яка працювала б на всіх швидкостях. Коли ви розглядаєте рольставні, має сенс, що спотворення зростають щодо швидкості автомобіля. Я міг би уявити, що дані акселерометра або даних швидкості GPS подають, оскільки коефіцієнт може працювати. Або, знаєте, придбайте камеру, яка не зовсім сміття.

Що інші роблять у цій галузі

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

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

Незалежні розробники в Ізраїлі, Південній Африці та Аргентині виявили інтерес до створення власних зламаних версій BlueNet. Деякі, ймовірно, пройдуть краще за інших, оскільки в таких місцях, як Ізраїль, використовуються семизначні номерні знаки без символів алфавіту.

Ключові винос

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

Є багато проблем, з якими вам доведеться зіткнутися, намагаючись створити власне рішення ALPR, але на щастя, багато з них вирішені.

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

Питання у 86 мільйонів доларів все ще залишається - якщо ви можете створити напівзакрите рішення, яке добре справляється, стоячи на плечах гігантів, скільки ще грошей потрібно вкласти, щоб зробити справді справді хорошу роботу?

Моє рішення навіть не в тій же сонячній системі, що і 99,999% точний сканер, на який, здається, очікують деякі інтернет-коментатори. Але знову ж таки, BlueNet повинен досягти лише 95% заданої точності.

Отже, якщо 1 мільйон доларів призводить до 80% точності, а, можливо, 10 мільйонів доларів досягає 90% точності - коли ви припиняєте витрачати кошти? Крім того, враховуючи, що ця технологія має комерційне застосування тут, в Океанії, скільки більше грошей платників податків слід вкласти у власні рішення із закритим джерелом, коли місцеві стартапи можуть отримати вигоду? Австралія, зрештою, повинна бути “інноваційною державою”.