Допустим, вы хотите обнаружить только мотоцикл и человека . внутри файла visualization_util.py, перейдите к def draw_bounding_box_on_image_array, есть функция:
draw_bounding_box_on_image(image_pil, ymin, xmin, ymax, xmax, color,
thickness, display_str_list,
use_normalized_coordinates)
поместите этот вызов функции внутри условия, подобного этому
if (display_str_list[0][0:3]=="per" or display_str_list[0][0:3]=="mot"):
draw_bounding_box_on_image(image_pil, ymin, xmin, ymax, xmax, color,
thickness, display_str_list,
use_normalized_coordinates)
здесь «per» это первые три буквы «лица» и «мот» это первые три буквы мотоцикла. Таким образом, вы можете обнаружить желаемый объект из всех других
Это - хороший вопрос, и по моему скромному мнению они могут масштабироваться точно так же как любой пользовательский DAL. Я только использовал nHibernate, таким образом, я сфокусируюсь только на нем и функции, которые он имеет, который может помочь масштабировать систему.
Теперь после этих слов я думаю, что легче первоначально настроить пользовательский уровень DAL, потому что Ваш являются близкими с его конструкцией и может точно настроить его; однако, хороший ORM обеспечит много рычагов, которые позволяют Вам оптимизировать вполне немного. Просто необходимо провести некоторое время, изучая это.
Я также чувствую, что, если у Вас есть производительность критическая область кода и Вы не можете заставить свой ORM работать в Ваших требованиях затем для той крошечной области Вашего применения, Вы можете сделанный на заказ Ваш собственный уровень DAL. При использовании достойного шаблона разработки, такого как Репозиторий, созданный фабрикой то все, что необходимо сделать, выгружают реализацию репозитория
Будьте в спящем режиме Черепки портируются к NHibernate, который будет допускать горизонтальное масштабирование.
Существуют также некоторые очень прохладные взломы как этот для реализации sharding.
Таким образом, ответ да, NHibernate может масштабироваться неосведомленным постоянству и полностью прозрачным способом.
Просто неправильно сказать, что приложения, созданные в ORM, не масштабируются хорошо. Конечно, это произошло перед тем небрежным или ленивым devs злоупотребляют ORM написанием кода, которое генерирует ужасно неэффективный SQL. Создание производительных приложений означает понимать что-то о том, что все прекрасные абстракции на самом деле делают под капотом. Не требуется многого для пребывания вне этого прерывания как бы то ни было. Используя ORM никогда не означает не открывать профилировщика SQL или Профилировщика NHibernate.
И относительно заявления, что SPS просто намного быстрее, считайте это и это. И кроме того, ORMs (NHibernate, по крайней мере) дают Вам довольно простые способы использовать SPS, если Вы когда-нибудь должны.