Порода собаки по фото определить: Определить породу по фото — Kisapes.ru

Содержание

Fetch — новинка от Microsoft, которая подберёт вам собаку по вашему фото

У Microsoft в последнее время появляется всё больше занимательных проектов, не связанных с Windows и Microsoft Office. Например, одно из подразделений этой компании под названием Project Oxford ведёт интересные исследования в области распознавания изображений. С одним из таких экспериментов по определению возраста на основе фото мы вас уже знакомили в этой статье. А сегодня хотим представить вам новый любопытный проект этой лаборатории. С помощью Fetch вы сможете не только определить породу любой собаки, но и подобрать четвероногого питомца, наиболее подходящего к своему образу.

Fetch — это приложение для iPhone, которое умеет анализировать содержание фотографии, сделанной камерой или загруженной из галереи устройства, и находить на ней характерные черты, принадлежащие разным породам собак. После этого программа находит в своей базе данных наиболее подходящую под эти признаки породу собак. Вот ролик, демонстрирующий, как это работает.

Как вы могли видеть, программе можно предложить в качестве модели и снимок человека. Fetch, разумеется, распознает на фото человека и выдаст шутливое предположение о том, какая порода наиболее подходит данной персоне. Скачать это приложение на свой смартфон можно здесь.

Кроме мобильного приложения, работу Fetch можно протестировать прямо в браузере. Для этого вам необходимо перейти на специальный сайт What-Dog.net, предлагающий примерно те же возможности, что и мобильное приложение. Для экспериментов здесь можно выбрать одну из имеющихся фотографий собак, найти любую картинку в Сети с помощью строки поиска или загрузить свой собственный снимок.

После недолгого тестирования мне показалось, что в собаках Fetch разбирается просто идеально. Во всяком случае на всех загруженных мною фотографиях программа чётко находила собак и правильно определяла их породу. А вот подбор наиболее подходящих пород по фото человека иногда трудно воспринимать без улыбки. Как вам, например, такой выбор?

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

Snapchat добавит в приложение функцию для определения пород собак, видов растений и состава продуктов Статьи редакции

Функция появится у всех пользователей в 2020 году.

  • Snapchat добавит к Snap Camera для сканирования объектов три функции: Dog Scanner, PlantSnap и Nutrition Scanner, сообщает Business Insider.
  • Приложение с помощью камеры и технологии дополненной реальности сможет распознавать породы собак, виды растений и деревьев, а также состав продуктов.
  • Для этого надо навести камеру смартфона на объект и выбрать фильтр.
  • Snap добавит Scan, в том числе Dog Scanner, PlantSnap, Nutrition Scanner и варианты для брендов, в 2020 году.
  • Компания разрабатывала технологию с 2017 года и представила на конференции для разработчиков Snap Partner Summit в 2019 году.

1636 просмотров

{ «author_name»: «Лиана Липанова», «author_type»: «editor», «tags»: [«\u043d\u043e\u0432\u043e\u0441\u0442\u044c»,»\u043d\u043e\u0432\u043e\u0441\u0442\u0438″,»snapchat»], «comments»: 13, «likes»: 2, «favorites»: 0, «is_advertisement»: false, «subsite_label»: «social», «id»: 136068, «is_wide»: true, «is_ugc»: false, «date»: «Mon, 22 Jun 2020 13:07:59 +0300», «is_special»: false }

{«id»:373364,»url»:»https:\/\/vc. ru\/u\/373364-liana-lipanova»,»name»:»\u041b\u0438\u0430\u043d\u0430 \u041b\u0438\u043f\u0430\u043d\u043e\u0432\u0430″,»avatar»:»0fc66f43-091d-5ecb-be21-90015761419c»,»karma»:41404,»description»:»\u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0442\u0432\u0438\u0442\u0442\u0435\u0440: @liana_lipanova»,»isMe»:false,»isPlus»:true,»isVerified»:false,»isSubscribed»:false,»isNotificationsEnabled»:false,»isShowMessengerButton»:false}

{«url»:»https:\/\/booster.osnova.io\/a\/relevant?site=vc»,»place»:»entry»,»site»:»vc»,»settings»:{«modes»:{«externalLink»:{«buttonLabels»:[«\u0423\u0437\u043d\u0430\u0442\u044c»,»\u0427\u0438\u0442\u0430\u0442\u044c»,»\u041d\u0430\u0447\u0430\u0442\u044c»,»\u0417\u0430\u043a\u0430\u0437\u0430\u0442\u044c»,»\u041a\u0443\u043f\u0438\u0442\u044c»,»\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c»,»\u0421\u043a\u0430\u0447\u0430\u0442\u044c»,»\u041f\u0435\u0440\u0435\u0439\u0442\u0438″]}},»deviceList»:{«desktop»:»\u0414\u0435\u0441\u043a\u0442\u043e\u043f»,»smartphone»:»\u0421\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u044b»,»tablet»:»\u041f\u043b\u0430\u043d\u0448\u0435\u0442\u044b»}},»isModerator»:false}

характеристики породы собаки, фото, характер, правила ухода и содержания

Размер

Средний

Возраст

10–12 лет

Группа породы по МКФ

Пинчеры и шнауцеры, молоссы, горные и швейцарские скотогонные собаки

Краткие сведения

  • Энергичные и активные животные;

  • Дружелюбные, легко находят контакт с людьми и другими животными;

  • Осторожные и осмотрительные.

Характер

Аиди — древняя порода собак, другое название которой — атласская овчарка. И это не случайно. Малой родиной аиди считаются Атласские горы, которые простираются на территории Марокко, Алжира и Туниса.

Точный возраст этой породы сегодня определить сложно. Известно лишь, что еще во втором тысячелетии до нашей эры похожих собак использовали кочевые племена для охраны и защиты. Поэтому аиди сложно назвать чисто пастушьей собакой, скорее, ее предназначением является служение хозяину.

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

Ключевые черты характера представителей этой породы — самостоятельность, независимость и серьезность. Эта собака явно не для новичка. Аиди склонны к доминированию, поэтому им нужен сильный хозяин, который сможет стать для животного вожаком. Если опыта воспитания собаки недостаточно, стоит обратиться к кинологу: аиди требует ранней социализации и дрессировки.

В силу своего характера, а также природных данных, атласские овчарки — отличные сторожа. Они преданны семье, внимательны и чутки, однако не доверяют незнакомцам и относятся к ним с подозрением.

Несмотря на необходимость тренировок, аиди отличаются живым умом и хорошей памятью, поэтому заниматься с ними не так уж сложно. Главное — найти подход к питомцу.

С другими животными в доме представители породы уживаются неплохо, особенно если щенок попал в семью, где уже были домашние любимцы. Младших сородичей аиди, вероятнее всего, будет воспитывать. Кстати, с кошками эти собаки в большинстве случаев тоже живут довольно мирно, но все зависит от индивидуальных особенностей характера собаки.

Подпишитесь на рассылку и получите скидку от зоомагазина Petshop

Спасибо за подписку!

Аиди любят активные игры, спорт, они терпеливы, к детям относятся хорошо. Правда, специалисты все же не рекомендуют заводить собаку этой породы для детей и даже для подростков: ребенок правильно воспитать такого питомца не сможет. К тому же и собака может ревновать своего хозяина.

Уход

Длинная шерсть аиди нуждается в тщательном уходе. Еженедельные расчесывания, купания со специальным шампунем — все это необходимо, если вы хотите, чтобы собака выглядела красивой и здоровой. В период линьки питомца следует вычесывать два-три раза в неделю.

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

Условия содержания

Аиди — не квартирная собака. Несмотря на небольшой размер, животное будет гораздо комфортнее чувствовать себя на собственной территории загородного дома. К слову, не рекомендуется держать собаку на цепи или в вольере. Все-таки аиди больше подходит свободный выгул. Важно также время от времени выезжать с питомцем в лес, на природу, чтобы собака могла вдоволь побегать и порезвиться на открытой площадке.

Фотографии: Аиди (Атласская овчарка)

 

Эксперт объяснил выбор породы собак для распознавания заболевших COVID-19

https://ria.ru/20201002/sobaki-1578124766.html

Эксперт объяснил выбор породы собак для распознавания заболевших COVID-19

Эксперт объяснил выбор породы собак для распознавания заболевших COVID-19 — РИА Новости, 02.10.2020

Эксперт объяснил выбор породы собак для распознавания заболевших COVID-19

Собаки породы шалайка были выбраны для обучения распознаванию в толпе заболевших коронавирусом из-за их крайне чувствительного обоняния, они смогут в будущем… РИА Новости, 02.10.2020

2020-10-02T18:05

2020-10-02T18:05

2020-10-02T18:06

распространение коронавируса

коронавирус в россии

коронавирус covid-19

российская кинологическая федерация (ркф)

коронавирусы

аэрофлот

татьяна голикова

общество

/html/head/meta[@name=’og:title’]/@content

/html/head/meta[@name=’og:description’]/@content

https://cdn23. img.ria.ru/images/155537/88/1555378890_0:442:1080:1050_1920x0_80_0_0_2aa8eab8e75126721bc80a6a0b4ef318.jpg

МОСКВА, 2 окт – РИА Новости. Собаки породы шалайка были выбраны для обучения распознаванию в толпе заболевших коронавирусом из-за их крайне чувствительного обоняния, они смогут в будущем распознавать молекулярные маркеры этого заболевания, заявил РИА Новости президент Российской кинологической федерации (РКФ) Владимир Голубев.Ранее вице-премьер РФ Татьяна Голикова сообщила о подготовке 15 специальных собак породы шалайка, которых обучают распознавать в толпе в аэропорту заболевших коронавирусом.»Дело в том, что собаки уникальной породной группы шалайки обладают очень точным и тонким нюхом. Они способны обнаружить любой запрещенный предмет и круглосуточно несут вахту безопасности в аэропорту», — сказал Голубев.Он подчеркнул, что породы с невероятно чувствительным обонянием могут распознавать не только взрывчатые, наркотические и другие вещества, но и молекулярные маркеры различных заболеваний. «На данный момент есть успешный опыт выявления по запаху специально обученными собаками таких недугов как диабет, болезнь Паркинсона, малярия и некоторых онкологических заболеваний», — отметил президент РКФ.Голубев рассказал, что шалайки являются межвидовым гибридом среднеазиатского шакала и ненецкой оленегонной лайки. По его словам, они унаследовали лучшие качества своих предков — острое обоняние и способность работать в очень большом температурном диапазоне – как в лютый мороз, так и в зной. Кроме того, за счёт небольших размеров и веса они могут комфортно передвигаться в ограниченных пространствах.Президент РКФ рассказал, что федерация признала породную группу «шалайка» — подопечных отдела кинологического мониторинга «Аэрофлота» в 2018 году. Шалайки ежедневно с кинологами выполняют осмотр самолетов, аэропорта и прилегающих территорий и уже зарекомендовали себя как безупречные помощники в обнаружении взрывных устройств и взрывчатых веществ.

https://ria.ru/20200927/sobaki-1577789459. html

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

2020

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

Новости

ru-RU

https://ria.ru/docs/about/copyright.html

https://xn--c1acbl2abdlkab1og.xn--p1ai/

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

https://cdn24.img.ria.ru/images/155537/88/1555378890_0:270:1080:1080_1920x0_80_0_0_b980a3a3ca2665c8849ac881b275d6b4.jpg

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og. xn--p1ai/awards/

коронавирус в россии, коронавирус covid-19, российская кинологическая федерация (ркф), коронавирусы, аэрофлот, татьяна голикова, общество

Как узнать породу собаки и щенка по различным признакам?

Уход за собакой напрямую зависит от породы. Однако часто случается так, что хозяин не может определить принадлежность животного, что влечет за собой закономерные последствия: неправильный рацион, недостаточные или чрезмерные физические нагрузки, неверный подход к воспитанию и дрессировке, отсутствие должного внимания к «слабым» местам в организме. Эта статья даст развернутый ответ на вопрос: как узнать породу собаки и обеспечить правильный уход.

В каких случаях нужно знать породу животного?

Существуют различные ситуации, в которых необходимо идентифицировать собаку. Вот некоторые из них:

  1. Далеко не все хозяева добросовестные, поэтому на улицах регулярно можно встретить брошенных собак. Иногда животные самостоятельно уходят из дому по глупости или случайности. Люди, которые подбирают зверя, должны узнать породу по следующим причинам. Во-первых, может понадобиться составление объявлений: чем больше информации, тем больше шансов, что питомца отыщут старые или новые хозяева. Во-вторых, знание породы дает возможность обеспечивать правильный уход.
  2. Если собака приобретается на рынке, а продавец не предоставляет паспорт животного и родословную, то риск обмана достаточно высокий. В таком случае также необходимо знать признаки породы, которые помогут сэкономить время и деньги.
  3. Иногда в руки собачников попадают дизайнерские собачки, которые являются носителями смешанной крови. Определение предков поможет узнать физиологические особенности животного, а также его характер и склонность к проявлению различных эмоций.

Определение принадлежности собаки к определенной группе

Существует три условные группы, на которые можно разделить всех собак. Именно с этого следует начинать изучение общепринятой классификации. Далее подробный обзор каждой из них.

Дворняжки

Сложные полигибриды — самая численная группа собак. Другими словами, вычисление предков такого животного не только практически невозможное дело, но и абсолютно бессмысленное. Существует миф, что вычислить дворняжку очень легко и просто. Это действительно несложная задача для кинолога или просто опытного собаковода, но обычный человек может попасть впросак. Дело в том, что щенок дворняжки способен выглядеть очень мило и красиво — лучше, чем во взрослом возрасте.

Если человек хочет приобрести породистого зверя, то лучше всего определиться с желаемой породой, а после пойти к профессиональным заводчикам и проверить животное на наличие идентифицирующих признаков. Идти на рынок и приобретать собаку без предварительной подготовки — дело равносильное лотерее. Это связано с тем, что щенки могут быть очень красивыми и пушистыми, поэтому нечестный продавец может обмануть покупателя.

Метисы

Метис — собака, родители которой относятся к разным породам. Если эксперимент удался по ряду признаков, то метисов называют дизайнерскими собаками. Эти животные наследуют гены обоих родителей, поэтому негативные качества родительских пород могут уравновешиваться. Часто происходит и наоборот: склонность к наследственным заболеваниям обоих родителей, непредсказуемость характера, странный внешний вид и так далее.

Метисы — предмет обогащения многих мошенников, которые занимаются разведением и продажей собак. Это связано с тем, что отличить чистокровного щенка от метиса может только опытный кинолог.

Если собачник хочет приобрести породистое животное, то ему не стоит приобретать щенка «с рук». Рекомендуется обратиться к профессиональному заводчику, который предоставит документы, подтверждающие родословную. Такой нехитрый способ защитит читателя от покупки метиса.

Породистые собаки

В настоящее время ученые насчитывают приблизительно 400 различных пород. Эту цифру невозможно конкретизировать, т.к. регулярно появляются новые породы, а старые вымирают. Также нельзя забывать о тех породах, которые имеют очень маленькую численность. Да, безусловно, можно обратиться к специальным справочникам, изучить их досконально, однако отсутствие опыта способно помешать составлению правильного вывода. Да и выбор породы собак может затянуться. Именно поэтому нужно иметь представление о том, как определяется порода животного, знать способы и методы идентификации.

Характер и внешний вид животного

Характер — важнейший поведенческий параметр, который поможет определить принадлежность животного к определенной породе. Однако человек, который не является специалистом, скорее войдет в заблуждение, чем найдет ответ на свой вопрос. Также не стоит забывать о том, что каждая особь индивидуальна, как и трактовка ее поведения хозяином. Именно поэтому неопытным людям стоит анализировать характер зверя в качестве вторичного признака. На первый план должна выходить именно внешность.

Первым делом следует выделить следующие параметры: габариты, цвет, длина шерсти, форма головы, туловища и ушей.

В действительности существуют большое количество «мелких» признаков, которые тоже помогут узнать породу. Среди них: длина лап, форма ушей, хвоста и так далее. При составлении характеристики животного обязательно нужно учитывать возраст и половую принадлежность. Так, например, если разыскивается порода собак с короткими лапами, то круг поиска заметно сужается. Далее проводится сравнение пород собак из наиболее подходящих.

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

Определение породы щенка

Популярный вопрос: как определить породу собаки по щенку раннего возраста? Как уже было сказано выше, определить породу малыша достаточно трудно без помощи ветеринара.

Первым делом хочется сказать, что щенок может считаться породистым только в том случае, если есть специальный чип или документы.

Во всех остальных случаях есть риск того, что кто-то из относительно близких предков относился к другой породе.

Некоторые хитрости помогут определить принадлежность щенка, однако только в том случае, если порода обладает ярко выраженными отличительными чертами. Так, например, щенков Мексиканской голой собаки отличить (условно) от других пород легко. Морщинистая собака со складками — порода Шарпей или Мастифф. Красивая собака с крысиной мордой — порода Бультерьер. Также не стоит забывать о целых группах пород. К примеру, шотландские породы собак имеют необычные и схожие между собой морды уже в самом раннем возрасте.

Специальные сервисы

В настоящее время в Интернете есть бесплатные сервисы, которые помогают людям определять породу собак. Для этого нужно ввести основные характеристики внешности, а дальше исходить из предложенных вариантов. Да, безусловно, точно определить принадлежность животного удастся только в том случае, если оно чистокровное, однако стартовую помощь можно получить даже на таких сайтах.

Есть еще один вариант: общение на форумах для собачников. На таких форумах можно выкладывать фотографии и слушать мнения людей. Однако доверять первому встречному комментатору тоже не стоит.

Краткий экскурс по некоторым породам

Существуют отличительные черты и признаки, которые способны сильно сузить круг поиска. Популярный вопрос: у какой породы собак выпадают глаза и, как следствие, наступает слепота? Данной проблемой страдают собаки небольших размеров: Чихуахуа, Пекинесы, Бульдоги, Японский Хин, Бульмастиф, Ши-тсу, Мопсы, Боксеры, Шарпеи и Бостон-терьеры. Именно эти собаки могут потерять глаз, если медицинская помощь не оказана в ближайшие несколько часов. Надо заметить, что причиной неприятности может стать любая мелочь: игра с ребенком, физическая нагрузка, схватка с кошкой или собакой.

Также многих людей интересуют породы собак без запаха псины, ведь у всех людей разное обоняние и восприимчивость. А уже если найденный питомец не издает характерный запах, то это возможность сильно сузить круг поиска. Вариантов несколько: лысое тело или пес, который имеет шерсть, напоминающую человеческий волос. В первом случае следует обратить свое внимание на Мексиканскую голую собаку и Китайскую хохлатую, а во втором случае, скорее всего, собачка является Йоркширским терьером.

Еще один интересный случай: не лающая порода собак Басенджи (не путать с немотой). Если питомец не издает никаких звуков, то рекомендуется посмотреть на фотографии этого зверя — может быть «зверюшка» окажется настоящей африканской собакой. Надо сказать, что эта порода древняя, поэтому прошла проверку временем — Басенджи не только очень красивый зверь, но и преданный друг.

Если в дом попала собака-нянька — порода будет определяться довольно долго. Дело в том, что такой поведенческий признак присущ многим породам, однако в разной степени. Также нужно учитывать индивидуальные особенности характера зверя. Лучшими няньками считаются: Колли, Лабрадор и Немецкая овчарка. Как видно, породы эти совершенно разные.

Когда собака в складках — порода определяется очень легко. Если складок очень много, то это Шарпей, чуть меньше- Мастифф. Небольшое количество складок указывает на Мопса или Бульдога.

Особое внимание надо уделить длине шерсти питомца. Так, например, порода собак с длинной шерстью идентифицируется намного легче, чем с шерстью средней длины. Также нужно посмотреть на структуру волос, ведь существуют совершенно причудливые формы. Если нашлась собака с дредами — порода Комондор устанавливается за считанные минуты.

Цвет окраса тоже не должен оставаться без внимания. Если окрас многоцветный или двухцветный, то задача усложняется. Исключением является пятнистая собака — порода далматинец. Если собака одноцветная, поиск значительно ускоряется. Так, например, если встречается черная, серая, белая или рыжая собака — порода устанавливается легко. Также рекомендуется понять: а не вызывает ли животное определенные ассоциации. Если нашлась собака-мишка — порода Ньюфаундленд.

Очень часто породу «выдают» уши животного. Да, безусловно, этот признак не всегда способен указать на конкретную породу, однако содействовать поиску может. Если у собачки свисают уши, то следует смотреть породы собак с висячими ушами для ускорения идентификации животного. Встретилась собака с большими ушами — порода найдется намного быстрее, если не игнорировать эту особенность.

Подводя итоги, хочется сказать, что определить породу собаки (пусть и условно) можно самостоятельно. Это рекомендуется делать в обязательном порядке, ведь именно от этого знания зависит уход за животным. Однако если человек не имеет опыта обращения с собаками, то лучше всего не брать первую попавшуюся «зверюшку». Дело в том, что существуют породы собак для новичков, которые относительно просты в уходе. Также не стоит забывать о любви, которую должен получать питомец абсолютно любой породы.

Google Lens в составе Google Фото и фирменного ассистента Google научилось распознавать породы собак и кошек

На выставке Mobile World Congress 2018 компания Google официально объявила о том, что возможности Google Lens, умеющей распознавать объекты и предметы, находящиеся перед камерой смартфона, в этом году будут заметно расширены.

 

 

Среди всего прочего было упомянуто, что Google Lens в составе Google Фото и фирменного ассистента Google Assistant научится распознавать животных и растения и, в частности определять их породы и виды.

 

Теперь это стало реальностью: упомянутые выше приложения будут распознавать породы собак и кошек. Если ранее изображения с котами и собаками определялись ими, как «похожие на кота (собаку)», то теперь они с точностью распознают этих животных и даже пытаются определить их породу. Это же самое касается и растений.

Как обычно это бывает в подобных ситуациях возможность распознавания пород и видов животных и растений в Google Lens на устройствах с операционными системами iOS и Android появится «в течение ближайших недель».

 

К сожалению, ассистент Google в настоящий момент умеет общаться лишь на ограниченном количестве языков и на ограниченном количестве устройств флагманского уровня.

 

Остается надеяться, что новые возможности в составе Google Фото не заставят себя долго ждать и будут доступны гораздо более широкому кругу пользователей.

 

источник


Похожие материалы:

Возможности Google Lens стали доступны пользователям Google Фото

Возможности Google Lens вскоре станут доступны на iOS устройствах в Google Фото

Ассистент Google получил поддержку планшетов Apple iPad и Android устройств с операционной системой Android 5.0 и старше

Персональный помощник Google Assistant в этом году станет доступен в 38 новых странах и получит поддержку 17 новых языков, включая русский

Студенческая ассоциация прикладной статистики

Вернуться к исследованиям и публикациям

Мотивация

Собаки, или по прозвищу doggos, щенки, были лучшими друзьями и помощниками человека с самого начала истории человечества. Если вы владелец собаки, вас, вероятно, спрашивали о породе вашей собаки. Каждая порода собак отличается не только размерами, внешним видом, но и темпераментом и чертами характера.Иногда порода собак является последним фактором, определяющим, могут ли они взять определенную работу (животное-помощник, k9 и т. Д.) Или подойти хозяину (гипоаллергенен для чувствительных владельцев, хороший темперамент для младенцев и т. Д.). Американский клуб собаководства (AKC) в настоящее время включает 190 пород собак только в Соединенных Штатах, а Международная кинологическая федерация (FCI) признает более 360 чистопородных пород по всему миру. Однако эти цифры не включают никаких смешанных пород или каких-либо дизайнерских помесей, таких как популярные породы голдендудль или пагл.Официальные правила классификации могут сбивать с толку, но вы все равно можете найти информацию о чистой породе после некоторых усилий. Однако смешанная порода намного сложнее. Владельцам, желающим узнать смешанные породы собак, часто требуется дополнительная процедура генетического тестирования. У меня вопрос: можно ли определить породу собаки, просто взглянув на картинку?

Цель

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

Набор данных

— Набор данных по идентификации породы собак Kaggle

Набор данных Kaggle бесплатный и предварительно помечен. Это также широко используемый и изученный набор данных. Набор данных Kaggle модифицирован из набора данных Стэнфордских собак, и первоначальными создателями являются Адитья Кхосла, Нитьянанда Джаядевапракаш, Бангпенг Яо и Фей-Фей Ли.

Исследовательский анализ

Набор обучающих изображений содержит 10 222 изображения 120 различных пород собак. Разбивка показана на следующем графике:

Чтобы понять размер изображений, я также построил график ширины и высоты изображения:

Вот еще несколько симпатичных изображений из набора данных:

Очистка данных

Два важных наблюдения, сделанных из приведенных выше гистограмм и точечной диаграммы, заключаются в том, что набор данных не сбалансирован, и что качество изображений неравное.1. У шотландских дирхаундов почти в два раза больше изображений, чем у эскимосских собак. 2. Изображения очень разные по размеру и разрешению. Поскольку эти факторы могут помешать обучению данных, я решил использовать функцию ImageGenerator из библиотеки keras. Путем ввода желаемых размеров / разрешения генератор изображений будет создавать кадрированные и скорректированные изображения. Мы также можем попросить генератор создать больше изображений на основе существующих изображений, смещая центр изображения, увеличивая / уменьшая масштаб, изменяя цвет, отражая изображение по вертикальной / горизонтальной оси и т. Д.Я использую следующие параметры:

Поскольку цвет и пропорции являются важными чертами между породами собак, я решил не регулировать цвет или увеличивать / уменьшать масштаб. Я также использую разделение поездов 80-20 и проверочного набора, как показано выше.

Модель

Используемый слой: а. Conv2D — Обычный узел нейронной сети для 2D-изображения б. MaxPooling2D — понижающая дискретизация изображения c.Сглаживание — удаление других размеров, кроме одного. d. Плотный — глубоко связанный слой е. Отсев — для регуляризации С библиотекой Keras можно было инициализировать модель CNN, просто позвонив: model = Последовательный () И добавляем к нему разные слои, вызывая: model.add (<слой>) Вот копия окончательной настройки:

Затем мы можем подогнать данные, вызвав fit_generator с обучающими изображениями, проверочными изображениями и шагами обучения.

Этот дизайн вдохновлен моделью нейронной сети VGG. Я использую два слоя Conv2D с промежуточным слоем MaxPooling. Затем я добавил плотные слои в конце с выпадающим слоем, выступающим в качестве члена регуляризации.

Результат

Для каждого изображения я нахожу вероятность, связанную с каждой породой (см. Рисунок выше). Затем я беру столбец с максимальной вероятностью и сравниваю его с исходными метками.Используя этот формат, мы могли бы выбрать несколько столбцов с наибольшей / одинаковой вероятностью, которые потенциально связаны с собакой смешанной породы.

Анализ ошибок

Точность очень низкая, и одна из причин может заключаться в том, что мне пришлось резко сократить количество шагов обучения (шаги на эпохи, эпохи, шаги проверки) и количество слоев, используемых для предотвращения сбоев моего ноутбука. График точности слева использует 10 эпох и 10 шагов на эпоху, а правый график содержит 30 эпох и 30 шагов на эпоху (обратите внимание, что вертикальный масштаб немного отличается).Основываясь на растущей тенденции, как видно на правом графике, я считаю, что можно получить более высокую точность после обучения в течение более длительного времени, но это потребует огромных вычислительных мощностей.

Вторая модель — перенос обучения с начальным этапом

Вместо того, чтобы обучать модель с самого начала, можно использовать предварительно обученную модель, такую ​​как VGGNET, RESNET, INCEPTION, XCEPTION, и предварительно обученный вес, такой как «imagenet».Я решил попробовать InceptionResNetV2, который можно импортировать из библиотеки Keras.applications. Вот копия установки:

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

Из-за сбоя ноутбука я перешел на Google Colab и запустил те же коды.Вот результаты:

Точность существенно выше, чем у последней модели. График точности слева использует 10 эпох с 10 шагами без функции обратного вызова, а правый график содержит 20 эпох с 20 шагами с функцией ранней остановки терпения 4 (ось Y немного отличается для графиков). Как можно было заметить, когда точность достигает максимума около двух справа, модель прекращает обучение после 4 эпох снижения.Более того, точность проверки намного выше, чем точность обучения. Это указывает на то, что модель изо всех сил пытается соответствовать набору данных. Есть несколько причин, в том числе проверочные и обучающие изображения трансформируются в разной степени. Поскольку я использовал те же параметры генератора данных, это не должно быть проблемой. Также есть предложение потренироваться подольше, но в интересах экономии времени я решил просто попробовать другую модель.

Вторая модель — передача обучения с VGG16

С той же настройкой, что и выше, на этот раз я импортировал модель VGG16.Вот результат:

Первая модель использует 20 шагов на эпоху и 20 эпох всего. Я также продолжал использовать функцию обратного вызова. Здесь мы видим более серьезную проблему переобучения, когда точность обучения продолжает расти, в то время как точность проверки выходит на плато. Поэтому я повторно запустил модель с дополнительным выпадающим слоем между Flatten и Dense для регуляризации; результат показан на правом графике. Однако точность ниже, чем у InceptionResNetV2.Поскольку точность все еще относительно невелика (менее 70%), менее целесообразно следовать модели, которую мы использовали здесь, чем ResNet.

Ограничения

Из-за ограниченной вычислительной мощности моего ноутбука я сузил круг до 20 пород и использовал минимальное количество тренировочных шагов. Хотя позже я переместил код в Google Colab, вычислительное время по-прежнему занимает очень много времени, и я смог увидеть только часть результата.В будущем я хотел бы обучить весь набор данных и при необходимости адаптировать новую модель.

Заключение и дальнейшая работа

Среди всех используемых моделей предварительно обученные модели относительно просты в создании и дают лучший результат на данный момент. InceptionResNetV2 также дает лучшую точность, чем VGG16, с теми же шагами обучения и настройкой, как описано ранее. Есть много возможных улучшений этого метода, и я хотел бы сначала изучить другие предварительно обученные модели с различными гиперпараметрами в будущем.Также возможно извлечь узкие места из моделей до обучения, а затем подогнать их с помощью логистической регрессии, как показано в последнем источнике, статье Габорфодора Dog Breed — Pretrained Keras Models (LB 0.3), которая продемонстрировала значительное улучшение. В целом, мне очень нравится этот проект, я учусь и строю свою первую модель CNN с самыми красивыми изображениями.

Благодарность

Я хотел бы поблагодарить директоров R&P Майкла Ванга, Николь Чжу, Айшани Сил за поддержку меня на протяжении всего проекта.

Номер ссылки

Билогур, А. (2 апреля 2019 г.). Повысьте производительность классификатора изображений CNN с помощью прогрессивного изменения размера в Keras. https://towardsdatascience.com/boost-your-cnn-image-classifier-performance-with-progressive-resizing-in-keras-a7d96da06e20

Одегуа. «Перенос обучения и классификация изображений с использованием Keras на ядрах Kaggle». Medium, Towards Data Science, 9 мая 2020 г., https: / todatascience.com / передача-обучение-и-классификация изображений-с использованием-keras-на-kaggle-kernels-c76d3b030649

Пол Монни. «Определите породу собаки по изображению» https://www.kaggle.com/paultimothymooney/identify-dog-breed-from-image

Габорфодор. «Порода собак — предварительно обученные модели Кераса (LB 0.3)». https://www.kaggle.com/gaborfodor/dog-breed-pretrained-keras-models-lb-0-3.

Теперь ваш iPhone или телефон Android может определять породы собак на фотографиях, которые вы делаете.

ВЛАДЕЛЬЦА ДОМАШНИХ ЛЮДЕЙ будут в восторге от новой функции Google Фото для iPhone и Android.

ИИ, который поддерживает приложение для сортировки изображений большой G, теперь может определять породу вашей собаки или кошки и давать вам больше информации о вашем пушистом друге.

2

Google Фото представил ряд функций, ориентированных на домашних животныхКредит: Google

Система машинного обучения, получившая название Google Lens, недавно была представлена ​​в приложении Photos для iOS и Android после запуска в качестве эксклюзивной привилегии на флагманских телефонах Google Pixel 2. .

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

Он делает это, извлекая информацию из огромной базы данных результатов поисковой системы Google.

И теперь вы можете добавить распознавание питомцев к его растущему набору навыков.

2

Paw-fect — Google Фото теперь также позволяет искать домашних животных по породам и с помощью эмодзиКредит: Getty — Contributor

Вот как вы можете заставить его работать: откройте Google Фото, выберите изображение кошки или собаки, которое вы только что сфотографировали. , а затем коснитесь значка объектива, чтобы просмотреть дополнительную информацию, включая породу.

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

Она также указала на множество других функций приложения, ориентированных на домашних животных, в том числе слайд-шоу музыкального видео для кошек и собак, которое можно настроить, нажав на кнопки с очаровательным названием Meow Movie или Doggie Movie.

DOWNWARD DOGE

Криптовалюта BTC упала на один процент, поскольку эфириум потерял почти пять процентов

ЧИСТЫЙ УБЫТ

Домашняя работа вынудила два миллиона британцев потратиться на вторую широкополосную линию

ПОСМОТРЕТЬ

Захватывающие фотографии со всего мира Лунное затмение «Кровавая луна»

Горячие предложения

X MARKS THE SPOT

Вы можете получить ЧЕТЫРЕ бесплатных игры для Xbox в месяц, включая DC Comics «Injustice

BIG SWITCH

Nintendo Switch Pro», который выйдет в сентябре с экраном ЛУЧШЕ, чем your TV ‘

СЛУШАЛИ ЭТО ПЕРВЫЙ

На фото Леброн Джеймс в СОВЕРШЕННО СЕКРЕТНЫХ наушниках Apple

И если вы отметите фотографию, на которой вы и ваша собака гуляете, вы можете найти ее, введя его имя и «парк».

Вы также сможете искать своих приятелей по породам, видам и даже по смайликам.

«Быстро ищите« питбуль », чтобы заново открыть для себя фотографии милой собаки вашей сестры», — поясняется в сообщении в блоге.

Теперь, если бы он только мог очистить лоток для мусора вашего питомца.


Мы платим за ваши истории! У вас есть история для новостной команды The Sun Online? Напишите нам по адресу [email protected] или позвоните по телефону 0207782 4368. Мы тоже платим за видео. Щелкните здесь, чтобы загрузить свой.


Snapchat AR Camera позволяет пользователям определять породы собак и виды растений

  • В последние годы Snapchat зарезервировал свою камеру множеством функций дополненной реальности, которые позволяют пользователям применять фильтры для лица и играть с интерактивными линзами.
  • На прошедшей на прошлой неделе конференции Snap Partner Summit компания представила новых партнеров для Scan, функции активации с удержанием и удержанием, которая дает пользователям больше информации, когда они наводят камеру на различные объекты и окрестности.
  • Помимо решения математических задач и поиска в Интернете ссылок на реальные продукты, пользователи теперь могут использовать сканирование для определения пород собак, видов растений и информации о питании для пищевых продуктов.
  • Посетите домашнюю страницу Business Insider, чтобы узнать больше.

Если чрезвычайно популярный фильтр для собак не предоставил вам достаточно контента о щенках в Snapchat, вы скоро сможете использовать приложение для определения пород собак, с которыми вы сталкиваетесь в автономном режиме.

Snap дебютировал с новыми партнерами для Scan, своей функции, которая позволяет пользователям собирать больше информации о реальных объектах, просто наведя на них камеру приложения. Теперь пользователи Snapchat смогут использовать эту функцию для определения пород собак, видов растений и деревьев, а также данных о питании упакованных продуктов.

Snapchat давно инвестирует в AR, включая технологию распознавания объектов. Еще в 2017 году The Information сообщила, что Snapchat работает над способом сканирования объектов в реальном мире.С тех пор возможности сканирования Snap Camera расширились — от глупых до удобных.

Пользователи могут получить доступ к танцующим фигурам и анимации, когда направят свой телефон на плоскую поверхность или кусок пиццы, а также использовать эту технологию для более полезных задач, таких как определение песни, воспроизводимой с помощью Shazam, распознавание реальных предметов, на которых можно купить Amazon, и даже решение математических уравнений в домашних условиях.

Функция распознавания возражений сканирования

Snapchat дебютировала в 2019 году на партнерском саммите Snap, мероприятии только для приглашенных, которое компания запустила только в прошлом году, чтобы конкурировать с ежегодными конференциями разработчиков от таких технологических гигантов, как Facebook, Apple и Google.Саммит Snap Partner Summit в этом году, который состоялся 11 июня, был вынужден стать виртуальным из-за пандемии коронавируса.

Snap сообщает, что дополнения к Scan, включая Dog Scanner, PlantSnap и Nutrition Scanner, а также различные возможности бренда, будут доступны пользователям в конце этого года.

На партнерском саммите Snap также представила новую «панель действий» для навигации по Snapchat, дополнения к оригинальному контенту и играм, а также мини-диалоги для друзей, позволяющие совместно координировать и планировать действия..

Может ли ветеринар сказать мне, какой породы моя собака? (Плюс лучший тест ДНК домашних собак № 1, одобренный ветеринарами)

Отличить сенбернара от миниатюрной итальянской борзой довольно просто. Но можете ли вы отличить шотландского терьера от английского? Лабрадудель и австралийский лабрадудель?

Скорее всего, вы не заметите разницы. Когда вы покупаете или усыновляете собаку, иногда остаются вопросы — какая настоящая порода собаки является моей собакой?

Может ли ветеринар использовать свой опыт для определения породы моего щенка?

Принять новую собаку из спасательного приюта — это очень полезно.Вы даете второй шанс достойному щенку. Открывать свое сердце и дом — это достойно восхищения, и большему количеству людей следует заняться процессом вознаграждения.

Часто при усыновлении возникают нерешенные вопросы. Какова была история щенка до того, как он нашел свой последний дом ? Что он пережил? Некоторые владельцы даже не знают, какой породы их собака.

Можно ли определить породу собаки по фото ? Может ли ветеринар сказать мне, какой породы моя собака?

Да, есть методы, которые ветеринар может использовать для определения породы вашей собаки.Они могут основываться на многолетнем опыте, физических характеристиках, конкретных анатомических измерениях и даже определять вашу собаку на генетическом уровне.

Вы хотите узнать породу своей собаки? Смешанные породы пуделей бывает сложно определить! К счастью, тесты ДНК очень точны.

Как ветеринар определяет породу собак по характеристикам?

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

Я спросил доктора Клодин Сиверт , ветеринара из Канзаса. Она работает ветеринарным врачом по кошкам и собакам из Канзаса, а также является ветеринарным консультантом в CatPet.club.

Доктор Сиверт разделяет следующие физические характеристики, которые она использует для определения неизвестных пород собак.

  • Размер и вес собаки
    • В зависимости от размера бывают большие (25-50 кг), средние (10-25 кг), мелкие (2,5-10 кг) и игрушечные (1-2,5 кг) породы. а вес.
  • Цвет шерсти и качество меха.
    • Собака может иметь длинную или короткую шерсть с густым подшерстком или без него. Фактура шерсти может быть более или менее мягкой. Некоторые породы, например, китайские голые собаки, имеют минимальное количество шерсти на теле.
  • Форма головы и морды
    • Существуют так называемые брахицефальные собаки с круглым черепом и очень короткой мордой. Грейхаунды имеют длинный нос и узкий череп и известны как долихоцефальная порода собак.Чаще всего встречаются моноцефальные собаки, и у них пропорциональные черепа (лабрадор ретривер)
  • То, как собака держит уши
    • Сторожевые собаки, такие как немецкая овчарка, разводятся так, чтобы быть бдительными, и их уши поддерживаются, в то время как собака, созданная для ловли мелких грызунов, таких как такса, прижимает уши, чтобы не пораниться добычей.
  • Как собака держит хвост.
    • Хаски, маламуты, чау-чау, норвежские лосиные собаки известны своими красивыми хвостами, которые они держат.В то же время у некоторых собак, например у французских бульдогов, миниатюрные, практически отсутствующие хвосты.
  • Темперамент собаки
    • Каждая порода собак имеет свой набор личностных черт, которые определяют ее
    • Породы терьеров известны своей агрессивностью по отношению к другим собакам. Лабрадоры и голдендудлы любят плавать в бассейнах, океане и озерах
    • Короткое интервью с владельцем о характеристиках может иметь большое значение для окончательной идентификации породы
  • Конкретные характеристики тела, которые могут дать подсказку.
    • Породы терьеров известны своими пресловутыми усами.
    • Шарпеи имеют много кожи, что придает им особый вид.
    • Чау-чау славятся своим пурпурным языком.
    • Висячие (висячие) сверхдлинные уши кокер-спаниеля или кокапу легко идентифицировать.

Идентификация собаки путем тщательного изучения клинической внешности возможна. Люди часто также задаются вопросом, можно ли адекватно определить породу собак по фотографии или лучше всего провести анализ ДНК.

Может ли ветеринарный врач определить породу собак?

Ветеринары уже несколько лет имеют доступ к тестированию ДНК собак разных пород. ДНК-тесты для собак становятся все более популярными. Подобно анализу ДНК здоровья человека в стиле «Наследие» или «23 и я», ДНК домашней собачки стала невероятно популярной.

В 2020 году и в последующий период невероятно распространены домашние тесты ДНК. Владельцы собак часто хотят знать, какая у них порода. Иногда они просто хотят знать, но даже эксперты соглашаются, что знание породы может помочь объяснить поведение, снизить риски для здоровья и улучшить обучение.

Какой лучший тест ДНК собаки, который рекомендуют Ветеринары?

На рынке есть несколько тестов ДНК собак, которые настоятельно рекомендуются. Я спросил у ветеринаров, что они думают об этой статье, и наиболее часто упоминаемым брендом был Embark. Партнер с Корнельским университетом — ожидайте быстрых результатов (в США) в течение 1-3 недель. Для зарубежных стран добавьте несколько недель на доставку и определение последовательности.

База данных Embark широко распространена. Вы можете даже вступить в контакт с собаками-дальними родственниками! (У них есть база данных о предках подопытных животных).

Тест легко провести дома, а результаты ясны и понятны. Я легко могу понять, почему эта панель является одним из самых уважаемых и популярных тестов ДНК породы собак.

Распродажа Начать | ДНК-тест собак | Породы и комплект здоровья | Идентификация породы и скрининг генетического здоровья собак
  • ИДЕНТИФИКАЦИЯ ПОРОДЫ: Экраны на высадку для более чем 350 пород, типов и разновидностей собак. Используя платформу для генотипирования исследовательского уровня, разработанную в сотрудничестве с Колледжем ветеринарной медицины Корнельского университета, Embark предлагает наиболее точную разбивку по породам на рынке.
  • ОБСЛЕДОВАНИЕ ЗДОРОВЬЯ: Начните тестирование на 200+ генетических заболеваний, включая лекарственную чувствительность к MDR1, глаукому, дегенеративную миелопатию и дилатационную кардиомиопатию, одни из наиболее распространенных заболеваний у собак, начинающихся у взрослых. Держите вашу собаку здоровой и счастливой дольше.
  • ВЫСОКАЯ РЕЙТИНГ: ДНК-тест Embark’s Breed + Health — это тест ДНК собак с самым высоким рейтингом на Amazon.com.
  • НАЙДИТЕ РОДСТВЕННИКОВ СВОЕЙ СОБАКИ: Найдите и установите связь с другими собаками, у которых есть общая ДНК с вашей, включая дальних и близких родственников.Только Embark предоставит вам процентную долю общей ДНК вашей собаки и других людей, которые были протестированы с помощью Embark.
  • БЫСТРЫЕ, НАДЕЖНЫЕ РЕЗУЛЬТАТЫ: Созданный экспертами, только Embark является партнером Колледжа ветеринарной медицины Корнельского университета и пользуется доверием ветеринарных больниц. Результаты обычно через 2-4 недели.

Точны ли тесты ДНК собаки?

ДНК-тесты намного точнее, чем попытки определить породы собак по фотографии или физическим характеристикам.Тесты ДНК очень строгие, чтобы точно определить процентное содержание генетики какой породы в собаке. Практически не бывает чистокровных собак!

Учитывая чрезвычайную популярность собак-помесей Oodle с низким линьем, таких как Bernedoodle или Cavapoo, компании, занимающиеся анализом ДНК, довольно хорошо умеют определять присутствующие частичные породы. Их точность превосходна и может преподнести некоторые интересные сюрпризы владельцам собак, даже если они думают, что знают, какая у них порода.

Исследование 2012 года, частично проведенное Университетом Флориды с почти 6000 ответами ЭКСПЕРТОВ (ветеринары, заводчики, грумеры, тренеры), показало, что правильная порода собак определялась лишь немногим менее 30% времени.Это мизерный процентный результат!


Исследование пришло к выводу, что «независимо от профессии визуальная идентификация пород собак с неизвестным происхождением является плохой. Неправильная идентификация породы может иметь долгосрочные последствия »(Резюме исследования Университета Флориды, 2012 г.)

ДНК-тесты очень точны по сравнению со зрением и фотоидентификацией.

Возможно определение породы собаки по фотографиям.

Хотя посещение ветеринара или даже отправка теста ДНК будет быстрее и точнее, в Интернете есть много справочной информации, которая может точно определить породу вашей собаки.

Отличная идея — зайти в группы в Facebook или на Reddit о тех породах собак, которые, по вашему мнению, могут быть вашим щенком.

Даже для редких пород собак, таких как боксерпу, имейте субреддит, посвященный миксу. Никогда не помешает сделать снимок, опубликовать и спросить совета. Иногда любители собак могут быть активными, но большинство из них всегда готовы дать полезный отзыв!

Другой подход — поиск фотографий в Интернете.

Вы также можете сыграть в игру на совпадение, найдя в Интернете подозреваемые породы собак, а затем сравнив фотографии с изображением вашей собаки.

Это помогает документировать разные породы по ходу дела. Вы также должны попытаться найти 5-10 фотографий каждой породы из разных источников. Таким образом, у вас будет больше шансов получить полный спектр внешности каждой породы для сравнения с вашей собакой.

Некоторые породы, такие как лабрадудель, могут варьироваться от 100% плюшевого мишки до вида с прямой шерстью без отделки (усы).

Можете ли вы определить породы собак с короткими ногами в нашей викторине?

Мы провели тест с несколькими вариантами ответов, чтобы показать, насколько сложно определить породы собак по фотографиям.Даже зная, что все собаки на фотографиях коротконогие, и вопросов без уловок — тестируемый выше среднего получает правильные ответы только на 5 из 9 пород собак!

Примите участие в викторине по фотографиям породы коротконогих собак здесь.

Даже чайные Goldendoodles склонны к лаю и вою. К счастью, Голдендудлы невероятно умны и готовы научиться перестать лаять.

Действительно ли владельцам нужно знать, какая у них порода собак?

Действительно ли необходимо, чтобы владелец собаки знал, какой породы его собака? ДНК-тестирование собаки — это просто приятный бонус?

Я спросил ветеринара доктораЛесли Брукс, DVM — ветеринарный консультант https://betterpet.com

Вопрос: Действительно ли владельцам нужно знать, какая у них порода собак?


Dr. Books : « Основные причины, по которым владельцу может быть важно знать, какие породы у него есть, — это то, чего ожидать с точки зрения поведения и размера. Например, если они живут в месте, где запрещено размещение собак определенной породы или определенного размера, для них будет правильным знать, что если они принесут домой щенка, то он еще не полностью вырос .

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

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

Вопрос: Сложнее идентифицировать собак смешанных пород, таких как Голдендудль или Кокапу?


Др.Brooks : « Да, с собаками смешанных пород сложнее, но обычно мы можем определить некоторые из перечисленных выше особенностей, чтобы сузить круг до того, какие породы, скорее всего, являются частью смеси ».

Вопрос: Как ветеринары определяют породы собак без помощи теста ДНК?

Доктор Брукс : « Это почти всегда обоснованное предположение. Мы никогда не можем сказать наверняка. Тем не менее, мы обычно идентифицируем собаку как определенную породу или смесь пород по их общим характеристикам — размеру, форме лица, длине и типу шерсти, цвету, форме и росту тела, а также характеру / поведению .”

Часто задаваемые вопросы о том, как Vets ID определяет породы собак

Есть ли бесплатный тест на ДНК собаки?

Стоимость обработки ДНК высока. На рынке нет бесплатного теста на ДНК для собак. Доступ к качественному тестированию и анализу действительно стоит разумных затрат. Самый дешевый вариант — заказать домашний ДНК-тест с высоким рейтингом.

Есть ли преимущества у тестов ДНК собак?

Частные компании, которые тестируют ДНК собак, саморегулируются, но работают вместе и предоставляют данные некоторым партнерским исследовательским центрам.(Атлантическая статья)

Можно определить некоторые состояния здоровья, которым также подвержены некоторые породы. Это может способствовать лучшему профилактическому лечению. Многие ветеринары еще не уверены в ценности более высоких затрат на тестирование ДНК. Некоторые считают, что это роскошь, в которой нет необходимости

Deep Learning: Как построить детектор собак и классификатор пород с помощью CNN ?! | Рахиль Багери

Обзор:

Вы можете подумать, что распознать породу собаки на изображении — легкая задача для вас.Ты прав! Может быть нетрудно найти пары пород собак с минимальной межклассовой вариативностью, например, курчавошерстных ретриверов и американских водных спаниелей.

А как насчет этих двоих ?!

Ха, не все так просто!

В последнее десятилетие стало намного проще использовать методы глубокого обучения с несколькими строками кода Python, чтобы различать породы собак на изображениях. В этом блоге я расскажу, как создать сверточные нейронные сети (CNN) с нуля и использовать новейшие современные методы классификации изображений в ImageNet.Эта модель может использоваться как часть мобильного или веб-приложения для реального мира и изображений, предоставленных пользователем. Получив изображение для модели, он определяет, присутствует ли собака, и возвращает предполагаемую породу. Если изображение является человеческим, оно вернет самую похожую породу собаки. Вы можете найти код в моем репозитории на GitHub.

Детектор людей

Я использовал реализацию OpenCV классификатора каскадных объектов Хаара на основе признаков для обнаружения человеческих лиц. Каскадная функция — это подход, основанный на машинном обучении, обученный на множестве изображений с положительными (с лицом) и отрицательными (без лица) метками.DeteMultiScale получает координаты всех лиц, а затем возвращает их в виде списка прямоугольников. Но не забудьте преобразовать изображение RGB в оттенки серого перед его использованием.

Следующая функция face_detector подсчитывает количество человеческих лиц на фотографии:

 def face_detector (img_path): 
img = cv2.imread (img_path)
gray = cv2.cvtColor (img, cv2.COLOR_BGR2GRAY)
лиц face_cascade.detectMultiScale (серый)
return len (faces)> 0

Производительность face_detector оценивалась на 100 образцах изображений людей и собак.Этот детектор распознает все человеческие лица на основе данных о людях, но неэффективно работал с набором данных о собаках. Было около 11% ложных срабатываний.

Детектор собак

Пришло время использовать другой детектор, который лучше работает с набором данных собак. Я использовал предварительно обученные веса ResNet50 в ImageNet в Керасе, который обучен на более чем 10 миллионах изображений, содержащих 1000 этикеток.

В следующем коде paths_to_tensor берет путь к изображению и возвращает четырехмерный тензор, готовый для ResNet50.Но все предварительно обученные модели в Keras нуждаются в дополнительной обработке, такой как нормализация, которую можно выполнить с помощью preprocess_input. Функция dog_detector возвращает «True», если собака обнаружена на изображении, хранящемся в img_path.

 из keras.preprocessing импортировать изображение 
из tqdm import tqdm
from keras.applications.resnet50 import preprocess_input, decode_predictionsdef path_to_tensor (img_path):
img = image.load_img (img_path, target_size = ng_path, target_size =expand_dims (x, axis = 0) def paths_to_tensor (img_paths):
list_of_tensors = [path_to_tensor (img_path) для img_path в tqdm (img_paths)]
return np.vstack (list_of_tensors) defg_of_tensors (list_of_tensors) defg_of_tensors) defg_of_tensors (img_predict_process_50) img_process_predict_process_50_predict_predict_process_50_predict_predict_process_50_predict_predict_process_50_predict_predict_process_50_predict_predict_predict_process_50) (img_path))
return np.argmax (ResNet50_model.predict (img)) def dog_detector (img_path):
prediction = ResNet50_predict_labels (img_path)
return ((предсказание <= 268) & (предсказание> = 151)) К
Оцените детектор собак, я проверил, попадает ли предсказанный класс RestNet50 в ImageNet в категории пород собак.Детектор собак работает без ложных негативов.

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

Набор данных

В этом наборе данных всего 8 351 изображение 133 разных пород. Количество доступных изображений для модели составляет около 62 на вид, что может быть недостаточно для CNN. В этой реальной обстановке изображения имеют разное разрешение, размеры, условия освещения, а также на некоторых изображениях изображено более одной собаки.Сравнивая распределение интенсивности пикселей изображений с одинаковыми метками, я заметил, например, что фотографии American_staffordshire_terrier различаются по контрасту, размеру и яркости. Значения интенсивности красного, зеленого и синего каналов на этих двух изображениях распределены по-разному. Эти различия в данных делают задачу определения породы собак еще более сложной.

Распределение меток пород в данных обучения показывает, что данные немного несбалансированы, в среднем 53 образца на класс.Большинство пород имеют почти одинаковое распределение в наборах данных для обучения, действительных и тестовых данных.

Кроме того, в рамках обработки данных я удалил масштаб изображений, разделив каждый пиксель в каждом изображении на 255.

Метрики

Поскольку здесь мы имеем дело с проблемой множественной классификации и данные немного несбалансированы, я использовали метрику оценки точности и функцию стоимости categoryorical_crossentropy. Но, во-первых, ярлыки должны быть в категориальном формате. Целевые файлы — это список закодированных меток собак, относящихся к изображению в этом формате.Эта потеря журнала нескольких классов наказывает классификатор, если прогнозируемая вероятность приводит к метке, отличной от фактической, и приводит к более высокой точности. Идеальный классификатор имеет нулевую потерю и 100% точность.

Классификация пород собак

Здесь я создал 4-слойную CNN в Keras с функцией активации Relu. Модель начинается с входного изображения 224 * 224 * 3 цветовых каналов. Это входное изображение большое, но очень мелкое, только R, G и B. Слои свертки сжимают изображения, уменьшая ширину и высоту, при этом увеличивая глубину слой за слоем.Добавляя больше фильтров, сеть может узнавать более важные особенности на фотографиях и лучше обобщать.

Мой первый слой производит выходные данные с 16 характеристическими каналами, которые используются в качестве входных данных для следующего слоя. Фильтры представляют собой набор из 16 квадратных матриц, карт выходных характеристик, которые представляют собой взвешенные суммы входных характеристик и ядра. Веса ядра вычисляются в процессе обучения по данным ImageNet, и что оно делает, так это скользит по входным картам характеристик и создает выходные характеристики.Итак, форма выходных функций зависит от размера ядра и входных функций.

Проверьте эту страницу, чтобы лучше понять, как работает CNN.

Я думаю, что было бы идеально, если бы функции ввода и вывода имели одинаковый размер. Итак, я решил использовать тот же отступ, чтобы выйти за края изображений с нулевыми площадками для всех слоев с шагом 2. Я также использовал операцию максимального объединения, чтобы убедиться, что я не теряю информацию на изображении, уменьшая при этом вероятность переобучения.Максимальное объединение занимает максимум пикселей вокруг местоположения.
После четырех сверточных слоев и max-pooling, за которыми следуют два полностью связанных слоя, я обучил классификатор. Сверточные слои извлекают признаки изображения, а классификатор классифицирует их на основе ранее полученных признаков. На изображении ниже показано, как последовательность функциональных блоков и классификатор наверху передают информацию из необработанного изображения и прогнозируют запрошенные целевые значения.

Архитектура модели CNN:

 от keras.слои импортировать Conv2D, MaxPooling2D, GlobalAveragePooling2D 
из keras.layers импортировать Dropout, Flatten, Dense
из keras.models import Sequential # Model Architecture
model = Sequential () model.add (Conv2D (Filters = 16, kernel_size = 2, padding = 'same', activate = 'relu', input_shape = (224,224,3)))
model.add (MaxPooling2D (pool_size = 2))
model.add (Conv2D (Filters = 32, kernel_size = 2, padding = 'same ', Activation =' relu '))
model.add (MaxPooling2D (pool_size = 2)) model.add (Conv2D (Filters = 64, kernel_size = 2, padding =' same ', activate =' relu ')) Модель
.add (MaxPooling2D (pool_size = 2))
model.add (Dropout (0.4)) model.add (Conv2D (filters = 128, kernel_size = 2, padding = 'same', activate = 'relu'))
model.add (MaxPooling2D (pool_size = 2))
model.add (Dropout (0,4)) model.add (Flatten ())
model.add (Dense (512, activate = 'relu'))
model.add (Dropout (0,4) ))
model.add (Dense (133, Activation = 'softmax')) model.summary ()

Созданная с нуля модель не работает должным образом, точность 12%, из-за нехватки данных изображений для обучения модели. .Одним из возможных улучшений является увеличение количества данных для добавления дополнительных данных. Эта стратегия изменяет изображения путем случайного заполнения, обрезки и поворота изображений. Это также позволяет модели лучше обобщать без переобучения, конечно, соответствующими параметрами.

Как уже упоминалось ранее, обучение классификатора CNN, созданного с нуля на небольших данных, подобных этому, приведет к недостаточной подгонке и с таким количеством уровней, а настройка параметров часто вызывает переобучение. Итак, пришло время использовать предварительно обученные сети трансферного обучения для создания классификатора пород CNN, даже если эти модели явно не созданы для этой задачи.Но одним из преимуществ этих сетей является то, что они обучаются на больших наборах данных, ImageNet с миллионами помеченных изображений и достигли точности 90%. Кроме того, они могут быть обобщены на другие изображения за пределами ImageNet.

Я реализовал предварительно обученные модели, такие как VGG, Inception V3 и ResNet в Keras, и сравнил их точность. Я использовал их как экстракторы фиксированных признаков и точно настроил полностью связанный слой, минимизируя функцию потерь кросс-энтропии, используя стохастический градиентный спуск, скорость обучения 0.001 и импульс Нестерова. Кроме того, последний полностью связанный слой изменен на количество пород собак, 133. Затем каждая модель была обучена на 25 эпохах с 20 образцами в каждой партии.

 # архитектура модели 
Xception_model = Sequential ()
Xception_model.add (GlobalAveragePooling2D (input_shape = (train_Xception.shape [1:])))
Xception_model.add (Dense (133, activate = 'softmax')) checkpoin (filepath = 'saved_models / weights.best.Xception.hdf5', verbose = 0, save_best_only = True) sgd = SGD (lr = 1e-3, распад = 1e-6, импульс = 0.9, nesterov = True) # компилируем модель
Xception_model.compile (loss ='ategorical_crossentropy ', optimizer = sgd, metrics = [' precision ']) # Обучение модели
Xception_model.fit (train_Xception, train_targets,
validation_data = ( valid_Xception, valid_targets),
shuffle = True,
batch_size = 20,
epochs = 25,
verbose = 1)

Модель Xception превосходит все другие модели с точностью 86% и потерей 0,4723 на тестовых данных. В целом модели на основе Inception немного превосходят VGG и ResNet на ImageNet; кроме того, он более эффективен с точки зрения вычислений.Производительность модели можно улучшить, применив более подходящие методы точной настройки. Например, тренировка нескольких верхних слоев, связанных с определенными особенностями собаки, и замораживание других, которые обнаруживают более общие черты. Потому что они уже зафиксированы в весах ImageNet.

Результат

Теперь пришло время объединить детекторы Xception-predic-разводки, а также протестировать их на нескольких изображениях с разными размерами и разрешением. Как упоминалось ранее, в качестве метрики оценки модели для этого классификатора была выбрана точность.Этот код берет путь к изображению и сначала определяет, является ли изображение собакой, человеком или ни тем, ни другим, а затем возвращает предсказанную похожую породу:

 def Xception_predict_breed (img_path): 
bottleneck_feature = extract_Xception (path_to_tensor (img_path))
predicted_vector = Xception_model .predict (bottleneck_feature)
return dog_names [np.argmax (predicted_vector)] def display_img (img_path):
img = cv2.imread (img_path)
cv_rgb = cv2.cvtColor pl (img, cv2.COLOR) = 90imshow (cv_rgb)
return imgplotdef Breed_identifier (img_path):
display_img (img_path)
prediction = Xception_predict_breed (img_path)
if dog_detector (img_path) == True:
print Эта собака является {предсказанием} \ n ")

if face_detector (img_path) == True:
print ('изображение - человек')
return print (f" Этот человек выглядит как {предсказание} \ n ")

else:
возвратный отпечаток («Картинка не собака и не человек»)

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

И вот результат на изображениях людей:

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

Для лучшего понимания неправильно классифицированных случаев я соединил прогнозируемые и фактические значения. Модель не могла отличить Great_pyrenees от Kuvasz, которые оба белые, большие и пушистые.Он также не мог отличить мастифа от бульмастифа, который представляет собой смесь бульдога и мастифа. Добавив больше данных, модель сможет изучить более конкретные особенности и различать эти похожие породы, что даже сбивает с толку людей.

Возможные улучшения

Точность модели можно повысить за счет увеличения данных и добавления дополнительных данных с метками обучения, поскольку модель была немного несбалансированной. При получении большего количества данных модели Convnet будут более способны изучать наиболее актуальные и специфические особенности собак по изображениям.Но это требует значительного количества времени и памяти. Другой возможный способ повысить точность модели — это усреднение прогнозов нескольких сетей для получения окончательного прогноза, известного как методы ансамбля. Как я упоминал ранее, одним из улучшений может быть применение более подходящих стратегий точной настройки для корректировки весов на основе данных. Кроме того, при правильном анализе окончательной модели можно было бы добавить немного шума к изображениям и посмотреть, как она работает.

Заключение

В этой работе я реализовал каскадный классификатор хаара и предварительно обученные веса ResNet50 для обнаружения человеческих лиц и собак.Я также потратил некоторое время на изучение данных, чтобы найти характеристики изображений, которые помогли мне применить более подходящие методы. Для классификации пород собак я начал с нескольких слоев сверточных слоев в качестве базовой сети. Модель показала лучшие результаты, чем случайное предположение, 1 из 133, но все же не соответствует требованиям.

Имея выделенное время и объем памяти, я решил использовать несколько архитектур с переносом обучения для повышения производительности CNN, что привело к значительному улучшению.Я использовал предварительно обученные модели в качестве экстрактора фиксированных функций и изменил глобальный средний уровень объединения, полностью связанный слой и применил другие подходы к тонкой настройке. Xception и ResNet50 показали более высокую точность, чем другие, около 86%. Получить более высокую точность довольно сложно из-за сложности таких наборов данных с некоторым сходством между смешанными породами.

В конце концов, я протестировал модель на тех же фотографиях с этикетками с разным распределением интенсивности, и она показала неплохие результаты.

Самой захватывающей частью этого проекта было то, как современные ConvNets с несколькими строками кода облегчили нам выполнение задач, которые даже люди находят сложными. Но улучшить модель с учетом времени и объема памяти достаточно сложно. Я планирую изучить упомянутые подходы к улучшению и обновлю этот блог с лучшими результатами.

Создание детектора породы собак с использованием машинного обучения »Материалы для разработчиков от Vonage ♥

Здесь, в Nexmo, мы используем Facebook Workplace в качестве одного из многочисленных каналов связи.Если вы не использовали или слышали о нем, это как Facebook, но для компаний. У всех нас в Nexmo есть учетная запись, и мы можем просматривать и присоединяться к различным группам по всей организации.

Несколько месяцев назад один из наших сотрудников создал группу для демонстрации наших питомцев, и это была отличная идея, и многие члены команды публикуют фотографии своих питомцев. Я проверяю группу почти каждый день, и это хороший способ насладиться лучшими вещами в жизни (щенки!).

Итак, посмотрев на фотографии всех собак, кошек и даже кроликов, некоторые люди спросили: «Что это за порода?».Как только я это увидел, у меня возникла идея создать алгоритм машинного обучения, чтобы выяснить, какая порода собак изображена на фотографии.

В этом посте мы узнаем, как создать детектор породы собак с помощью Keras, который является очень популярной платформой для создания моделей машинного обучения.

Предварительные требования

Этот пост предполагает, что вы немного знакомы с Python, а также имеете очень базовые представления о машинном обучении. Вы должны знать, что такое Keras и как обучить базовую модель машинного обучения.

С чего начать?

Чтобы решить многие проблемы машинного обучения, вам нужны данные, причем в большом количестве. В частности, нам нужны фотографии многих собак, и какие породы есть. Для этого проекта мы собираемся использовать набор данных из конкурса Dog Breed Identification Challenge на Kaggle. Этот набор данных содержит более 10 000 изображений собак, сгруппированных по породам.

Построение модели

Во-первых, давайте начнем с построения модели. Я буду использовать Google Colab для создания своего Jupyter Notebook на Python.Блокнот Jupyter — это веб-приложение с открытым исходным кодом, которое позволяет писать код, а также текст и изображения. Это отличный способ начать. Google Colab — это бесплатный сервис, в котором будут размещены ваши записные книжки Jupyter.

Примечание: Если вы хотите увидеть, как устроена модель, вы можете просмотреть мой ноутбук здесь.

Перед построением модели нам нужно получить данные, которые размещены на Kaggle. Чтобы загрузить данные, нам нужно использовать пакет для загрузки данных в нашу записную книжку с помощью Kaggle API. Это позволит нам загрузить набор данных для конкурса пород собак.Прежде чем мы сможем загрузить набор данных, нам нужно создать учетную запись на Kaggle и получить ваш ключ и секрет Kaggle API.

Перейдите к «Создать новый токен API» и сохраните файл на свой компьютер. Чтобы загрузить данные, запустим эту ячейку.

 

из файлов импорта google.colab
files.upload ()

! ls -lha kaggle.json

! pip install -q kaggle



! mkdir -p ~ / .kaggle
! cp kaggle.json ~ / .kaggle /


! chmod 600 ~ / .kaggle / kaggle.json


! kaggle соревнования скачать -c собака-порода-идентификация


! распаковать ярлыки.csv.zip
! распаковать test.zip
! распаковать train.zip
  

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

Когда вы запустите эту ячейку, вам будет предложено выбрать файл. Найдите файл JSON, который был загружен с Kaggle, и загрузите его в ячейку. После этого вы сможете запустить Kaggle API и загрузить набор данных в записную книжку.Как только файлы будут загружены, мы распакуем их с помощью ! Unzip . Модель ! перед командой позволяет запускать действие из командной строки внутри Google Colab. Команда ! Unzip просто разархивирует каждый файл.

Файлы, загруженные с Kaggle, содержат следующее:

  • Обучающие изображения, расположенные в папке \ train
  • Тестовые изображения, расположенные в папке \ test
  • CSV-файл с именем label.csv , содержащий название породы и имя файла, которое указывает на изображение в папке обучения.

Теперь мы можем загрузить наши данные в Dataframe, используя Pandas. DataFrame — это простая структура данных, содержащая строки и столбцы, вроде CSV. Pandas — это пакет Python, который предоставляет высокопроизводительные, простые в использовании структуры данных и инструменты анализа данных. Он используется во многих приложениях машинного обучения. Если вы работаете с приложениями для машинного обучения, одним из первых пакетов, которые вы будете использовать, будет Pandas.Если вы хотите узнать больше о пандах, посмотрите их собственное руководство, 10-минутное руководство по пандам.

Используя Pandas, мы можем импортировать csv из набора данных Kaggle в фрейм данных Pandas.

Источник.

 
импортировать панд как pd
импортировать numpy как np


num_classes = 12
семя = 42
im_size = 299
batch_size = 32


df = pd.read_csv ('labels.csv')
selected_breed_list = список (df.groupby ('порода'). count (). sort_values ​​(by = 'id', ascending = False) .head (num_classes) .index)
df = df [df ['порода'].isin (selected_breed_list)]
df ['filename'] = df.apply (лямбда x: ('train /' + x ['id'] + '.jpg'), axis = 1)

breeds = pd.Series (df ['порода'])
print ("общее количество пород для классификации", len (breeds.unique ()))

df.head ()
  

Это принимает csv, загружает его в DataFrame pd.read_csv ('labels.csv') , затем сортирует DataFrame по породам в алфавитном порядке. Затем мы распечатываем первые 10 строк, используя df.head ()

Затем нам нужно написать функцию, которая будет изменять размеры всех изображений до нужного нам размера, то есть 299×299 пикселей.Будет ясно, , почему нам нужно изменить размер изображения позже.

Источник

  из keras.preprocessing import image

def read_img (img_id, train_or_test, размер):
    "" "Прочитать и изменить размер изображения.
    # Аргументы
    img_id: строка
    train_or_test: строка "поезд" или "тест".
    размер: изменить размер исходного изображения.
    # Возврат
    Изображение в виде массива numpy.
    "" "
    path = train_or_test + "/" + img_id + ".jpg"
    img = image.load_img (путь, target_size = размер)
вернуть изображение.img_to_array (img)
  

Функция read_img () загрузит изображение нужного нам размера (299×299 пикселей) и преобразует его в многомерный массив numpy. Numpy — еще один пакет Python, который очень часто используется в машинном обучении. Это упрощает работу с этими типами массивов в Python.

Затем нам нужно преобразовать названия пород ( basenji , scottish_deerhound ) в векторы (одномерный массив чисел), поскольку наша модель машинного обучения может работать только с числами.Для этого мы будем использовать LabelEncoder Scikit Learn. LabelEncoder берет все названия пород и преобразует название породы в целое число. Каждое число будет разным для каждой породы (0 для басенджи, , 1 для scottish_deerhound, и т. Д.). Scikit-Learn — еще один пакет с открытым исходным кодом, который упрощает освоение машинного обучения.

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

Источник

  из sklearn.preprocessing import LabelEncoder
label_enc = LabelEncoder ()
np.random.seed (семя = семя)
rnd = np.random.random (len (df))
train_idx = rnd <0,9 действительный_idx = rnd> = 0,9
y_train = label_enc.fit_transform (df ["порода"]. значения)
ytr = y_train [train_idx]
yv = y_train [действительный_idx]
  

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

Источник

  из tqdm import tqdm
из keras.applications import xception

x_train = np.zeros ((train_idx.sum (), im_size, im_size, 3), dtype = 'float32')
x_valid = np.zeros ((valid_idx.sum (), im_size, im_size, 3), dtype = 'float32')
train_i = 0
valid_i = 0
для i, img_id в tqdm (enumerate (df ['id'])):
    img = read_img (img_id, 'поезд', (im_size, im_size))
    x = xception.preprocess_input (np.expand_dims (img.copy (), ось = 0))
    если train_idx [i]:
        x_train [train_i] = x
        train_i + = 1
    elif valid_idx [i]:
        x_valid [действительный_i] = x
        valid_i + = 1
print ('Обучить фигуру изображений: {} размер: {:,}'.формат (x_train.shape, x_train.size))

[00:06, 201.73it / s] Форма изображений поездов: (1218, 299, 299, 3) размер: 326 671 254
  

В этой функции мы перебираем каждый элемент в нашем DataFrame ( для i, img_id в tqdm (enumerate (df ['id'])): и вызываем функцию read_image , которая принимает img_id , который — это идентификатор изображения, который соответствует имени файла изображения из папки \ train и изменяет размер до 299×299 пикселей. Затем мы вызываем xception .preprocess_input функция.

Прежде чем мы перейдем к тому, что делает эта функция, нам нужно понять, что такое xception .

Для обучения моделей с нуля требуется намного больше изображений, чем есть у нас (10 КБ), а также много вычислительного времени и ресурсов. Чтобы ускорить этот процесс, мы можем использовать технику, называемую трансферным обучением. Это означает, что мы можем использовать модель, отличную от предварительно обученной, в другом наборе данных, таком как набор данных Imagenet. Xception — одна из тех предварительно обученных моделей.Мы можем рассчитывать на предварительно обученную модель с извлечением признаков из изображения. Затем мы просто обучим модель нашему конкретному варианту использования: определению породы.

Я поэкспериментировал с несколькими моделями и обнаружил, что Xception дает наилучшие результаты для случая использования обнаружения породы с набором данных изображений, который мы используем.

Для других наборов данных могут быть другие модели, которые больше подходят для ваших нужд для получения лучших результатов. Поэтому обязательно сделайте несколько тестов, прежде чем решить, какую модель использовать.Чтобы узнать больше об этой и других предварительно обученных моделях, прочтите этот пост. В этом посте также рассказывается, что такое ImageNet и как он связан с предварительно обученными моделями.

Хорошо, теперь давайте вернемся к тому, что делает функция xception.preprocess_input () . Это берет изображение, которое теперь является массивом numpy, и преобразует его в формат, ожидаемый моделью Xception, в котором все значения в массиве находятся между -1 и 1, что известно как нормализация.

Теперь мы можем построить нашу модель.

Поскольку мы используем Xception в качестве базовой модели, наша пользовательская модель очень проста. Для нашей собственной модели мы загрузим вывод из Xception, который представляет собой все слои, которые уже были обучены на изображениях из Imagenet, а затем построим последовательную модель.

Из блога Keras: «Последовательная модель — это линейный набор слоев». — Начало работы с моделью Keras Sequential

Все это означает, что мы можем накладывать другие слои поверх модели Xception. Это позволит нашей модели тренироваться на изображениях собак.

Вот наша модель. Источник

  из keras.layers import GlobalAveragePooling2D, Dense, BatchNormalization, Dropout
от keras.optimizers импортные Adam, SGD, RMSprop
из keras.models импортировать модель, ввод


base_model = xception.Xception (weights = 'imagenet', include_top = False)


для слоя в base_model.layers:
    layer.trainable = Ложь


x = base_model.output
x = BatchNormalization () (x)
x = GlobalAveragePooling2D () (x)

x = выпадение (0,5) (x)
x = Плотный (1024, активация = 'relu') (x)
x = выпадение (0.5) (х)

прогнозы = Плотный (количество_классов, активация = 'softmax') (x)


model = Модель (входы = base_model.input, выходы = прогнозы)
  

Сначала мы берем нашу base_model , которая является Xception, затем Freeze Layers. Это означает, что мы не будем проводить обучение на этих слоях, поскольку они уже обучены. Затем мы возьмем результат base_model и добавим следующие слои:

  • BatchNormalization — применяет преобразование, которое поддерживает среднее значение активации, близкое к 0, и стандартное отклонение активации, близкое к 1.
  • Уровень GlobalAveragePooling2D — уменьшает количество параметров для изучения.
  • Dropout — случайное отключение входов для предотвращения переобучения.
  • Плотный слой — который соединяет каждый нейрон в сети.
  • , за которым следует еще один слой Dropout.
  • Наконец, мы создаем еще один плотный слой и устанавливаем его на количество пород, для которых мы тренируемся.

Эти слои выбираются методом проб и ошибок. Нет известного способа определить хорошую структуру сети при построении модели.Stack Overflow — ваш лучший друг при создании собственных моделей.

Обучение модели

Теперь мы начнем строить собственно обучение модели. Я тренирую модель очень просто. Вы увидите этот тип кода при просмотре других моделей в Keras. Источник

  дата и время импорта
из keras.callbacks импортировать EarlyStopping, ModelCheckpoint

эпох = 1
learning_rate = 0,001


Early_stopping = EarlyStopping (monitor = 'val_acc', терпение = 5)
ШТАМП = "{} _dog_breed_model".формат (datetime.date.today (). strftime ("% Y-% m-% d"))

bst_model_path = "{} .h5" .format (ПЕЧАТЬ)
model_checkpoint = ModelCheckpoint (bst_model_path,
save_best_only = Верно,
save_weights_only = Ложь,
подробный = 1)

optimizer = RMSprop (lr = скорость_обучения, rho = 0,9)
model.compile (optimizer = optimizer,
loss = 'sparse_categorical_crossentropy',
метрики = ["точность"])

hist = model.fit_generator (train_generator,
steps_per_epoch = train_idx.sum () // размер партии,
эпохи = эпохи, обратные вызовы = [Early_stopping, model_checkpoint],
validation_data = действительный_ генератор,
validation_steps = действительный_idx.sum () // размер партии)

model.save (bst_model_path)
  

Сначала мы добавляем некоторые функции обратного вызова, которые мы запускаем после каждого цикла обучения, также известного как эпоха . У нас 2 обратных звонка:

  • early_stopping с параметром терпения , равным 5: это остановит обучение, если модель не улучшится через 5 эпох.
  • model_checkpoint : Сохраняет модель в файл для дальнейшего использования.

Затем мы устанавливаем оптимизатор на RMSprop.Оптимизатор — это то, как модель «учится». Для каждой эпохи модель вычисляет функцию потерь, которая показывает, насколько плоха модель по сравнению с набором тестов. Цель состоит в том, чтобы уменьшить эти потери, что называется градиентным спуском. Keras поддерживает множество оптимизаторов, и в моих экспериментах RMSProp, который выполняет градиентный спуск, кажется, работал лучше всего.

Затем мы построим модель, используя функцию model.compile , которая принимает оптимизатор, какую функцию потерь мы хотим вычислить (sparse_categorical_crossentropy), и установим для параметра metrics значение precision , которое покажет нам, насколько точна модель после каждой эпохи.

После этого мы проведем обучение, вызвав model.fit_generator () . Параметры этой функции: ImageDataGenerator как для нашего обучающего набора, так и для набора тестов, сколько шагов мы будем выполнять, количество эпох, что проверять и количество шагов, которые нужно проверить. Сейчас мы будем обучать эту модель 10 эпохам, просто чтобы посмотреть, как у нас получилось.

  Эпоха 1/10
38/38 [==============================] - 40 с 1 с / шаг - потеря: 0.5477 - acc: 0.8281 - val_loss : 0.0555 - val_acc: 0.9766

* пропуск вывода для удобства чтения *

Эпоха 10/10
38/38 [==============================] - 33 с 857 мс / шаг - потеря: 0,2426 - точность: 0,9358 - val_loss : 0.0457 - val_acc: 0.9905
  

Итак, у нас есть модель с точностью 99% при прогнозировании 12 пород!

Теперь мы можем протестировать нашу модель на некоторых изображениях собак и посмотреть, сможем ли мы получить правильную породу по этому изображению. Мы напишем функцию, которая берет изображение из Интернета, форматирует его так, как ожидает модель (изображение 299×299 пикселей), и делает прогноз, используя модель .Предсказать () . Эта функция принимает изображение в виде массива numpy и возвращает результат в виде списка вероятностей для каждой породы. Мы используем np.argmax () , чтобы найти индекс наибольшей вероятности из выходных данных model.predict () . Чтобы вернуть название породы, мы используем labels.csv , который мы загрузили из набора данных Kaggle, который содержит 12 названий пород. Затем мы отсортируем список по алфавиту и вернем название породы.

  от keras.модели импортировать load_model
из keras.preprocessing import image
импортировать matplotlib.pyplot как plt
импортировать numpy как np
импорт ОС

def pred_from_image (img_path):
    img = image.load_img (img_path, target_size = (299, 299))
    img_tensor = image.img_to_array (img)
    img_tensor = np.expand_dims (img_tensor, axis = 0)
    img_tensor / = 255.

    pred = model.predict (img_tensor)
    predicted_class = sorted_breeds_list [np.argmax (pred)]

вернуть predicted_class
  

Теперь давайте просто протестируем эту функцию, чтобы убедиться, что она работает.Мы загрузим фотографию шотландской дирхаунда с помощью wget , утилиты командной строки для загрузки файлов, и посмотрим, как работает модель.

Отлично! Модель предсказывает, что собака на фото — шотландский дирхаунд, и это так!

Заключение

Из этого поста мы узнали, как построить нашу собственную модель машинного обучения с помощью Keras, обучить нашу модель с помощью трансферного обучения и научились делать прогнозы с помощью нашей модели.

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

Технология распознавания лиц достается собакам

Помните классический диснеевский фильм «101 далматинец» и как все анимированные собаки походили на своих владельцев? Что ж, Microsoft только что выпустила новое приложение для смартфонов, которое поможет вам понять, что вы за собака.

Fetch! — это приложение для распознавания лиц, которое использует камеру вашего iPhone или личную библиотеку фотографий для идентификации и классификации собак по породам.Вы можете использовать его, чтобы узнать больше о любой собаке, загрузив фотографию. Но это еще не все. Приложение также сопоставляет типы личности человека с определенными породами, поэтому, если вам было любопытно, какой вы будете собакой, или ваш лучший друг больше похож на бассет-хаунд или ши-тцу, вы можете загрузить фотографии людей, чтобы определить, что породы соответствуют разным людям.

«Был интерес к созданию структуры, которая позволила бы вам взять домен — в нашем случае, собак — и распознавать многочисленные классы, такие как породы.«Мы были заинтересованы в том, чтобы позволить вам сделать распознавание объектов необычным, увлекательным и удивительным», — сказал Митч Голдберг, директор по развитию Microsoft Research в пресс-релизе. «Мы хотели привнести искусственный интеллект в мир собак. Мы хотели показать, что распознавание объектов — это то, что каждый может понять и с чем можно взаимодействовать ».

Приложение было разработано в Microsoft Garage, где проекты разрабатываются небольшими командами в компании. Оно доступно в Apple App Store и на веб-сайте какая собака.сеть. Релиз приложения своевременен, поскольку он совпадает с выставкой собак Вестминстерского клуба собаководства, которая проходит с 15 по 16 февраля.

Возможности распознавания в приложении довольно сложные.

«Если вы хотите сфотографировать собак, он скажет вам, какая это порода собак, если это одна из поддерживаемых нами пород», — сказал Голдберг. «Если я решу сфотографировать цветок, он скажет:« Собак не найдено! Хммм … Это больше похоже на … цветок? » Но если вы сфотографируете человека, он перейдет в режим скрытого веселья.И в игровой форме он расскажет вам не только о том, какой вы тип собаки, но и о том, почему. Забавно посмотреть, знает ли приложение, что это не собака. В большинстве случаев он расскажет вам, что это за изображение. Когда нет собаки, вы все равно хотите ее использовать ».

Опробовать приложение может любой желающий — даже репортеры CBS News. what-dog.net

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

Актуальные новости

«Уникальность этой модели заключается в сочетании машинного интеллекта и экспертных данных о породах собак, которые помогли нам быть более точными.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *