All streams
Search
Write a publication
Pull to refresh
56
0

Пользователь

Send message

Попробую разобраться, что там делается, было бы неплохо производительность повысить. Мне максимум около 60FPS, я обрабатываю лайввью с зеркалки canon 200D, через библиотеку gphoto2 можно запросить текущую картинку в jpeg, если в цикле без ограничений читать, то около 60 кадров в секунду получается.

Так посмотрите, какие у меня GPU — очень слабенькие по сравнению с тем, что используется в тестах на сайте нвидии. У меня код вот на этом примере основан — https://github.com/hybridgroup/gocv/blob/master/cmd/ssd-facedetect/main.go


Только там размер картинки image.Pt(128, 96) — у меня 800x533 в приведенных тестах было. Но там от размера картинки соотношение скоростей не сильно зависит. Модель caffe взял ту же, из примера.


Инициализация, один раз делается


    d.net = gocv.ReadNet(protoFile, modelFile)
    if d.net.Empty() {
        return nil, fmt.Errorf("Error loading model and proto files")
    }

    if err := d.net.SetPreferableBackend(gocv.NetBackendDefault); err != nil {
        return nil, errors.Wrap(err, "Set GPU backend")
    }

    targetType := gocv.NetTargetCPU
    if _, err := os.Stat("/proc/driver/nvidia/gpus"); err == nil {
        targetType = gocv.NetTargetFP16
    }

    if err := d.net.SetPreferableTarget(targetType); err != nil {
        return nil, errors.Wrap(err, "Set Target type")
    }

И поиск:


    W := float32(img.Cols())
    H := float32(img.Rows())

    blob := gocv.BlobFromImage(img, 1.0, image.Pt(300, 300), gocv.NewScalar(104.0, 177.0, 123.0, 0), false, false)
    defer blob.Close()

    d.net.SetInput(blob, "data")

    detBlob := d.net.Forward("detection_out")
    defer detBlob.Close()

    detections := gocv.GetBlobChannel(detBlob, 0, 0)
    defer detections.Close()

    rects := []image.Rectangle{}
    for r := 0; r < detections.Rows(); r++ {
        confidence := detections.GetFloatAt(r, 2)
        left := detections.GetFloatAt(r, 3) * W
        top := detections.GetFloatAt(r, 4) * H
        right := detections.GetFloatAt(r, 5) * W
        bottom := detections.GetFloatAt(r, 6) * H

        if confidence < 0.8 {
            continue
        }

        r := image.Rectangle{
            Min: image.Point{int(left), int(top)},
            Max: image.Point{int(right), int(bottom)},
        }.Canon()

        if (r.Min.X < 0 && r.Max.X < 0) || (r.Min.Y < 0 && r.Max.Y < 0) || (float32(r.Min.X) > W && float32(r.Max.X) > W) || (float32(r.Min.Y) > H && float32(r.Max.X) > H) {
            continue
        }
        rects = append(rects, r)
    }
Что-то не верится, скорее всего там скейлится картинка к меньшему размеру. Для моего случая меньше 300x300 очень плохо работает, на 300x300 конечно быстрее раза в 3 работает.
Спасибо! Попробую.

А можно как-то в докере к примеру запустить ваш OpenCV? У меня более-менее современный процессор с GPU только на рабочем ноуте, а там федора.
Делаю сейчас проект, в котором нужно делать определение лиц, железо десктопное, но при этом процессор крайне желательно не занимать ничем. Так что попробовал разные варианты, в том числе ваш Neural Compute Stick 2. Тестировал на картинках 800x533

Core i5 9400F — 59ms
Core i7 7500U — 108ms
Core i7 3770 — 110ms
GeForce GTX 1060 6Gb — 154ms
GeForce GTX 1050 2Gb — 199ms
Core i7 3770, ubuntu 18.04 with OpenCV from OpenVINO — 67ms
Intel Neural Compute Stick 2, ubuntu 18.04 with opencv from OpenVINO — 349

Короче решил на видеокартах остановиться, чтобы поцессор не нагружать. Intel Neural Compute stick ваш все-таки больше для всяких Raspberry Pi, насколько я понял.

Крайне удивило, что процессоры так хорошо работают по сравнению с видеокартами.
Еще не понял, почему старый Corei7 3770 работает горазо лучше через OpenVino. Вы там какое-то графическое ядро к вычислениям подключаете?
Я вот не понимаю таких людей. Он потратил на это кучу свободного времени в итоге сделал то, что при серийном производстве делается за одну минуту. Не лучше ли было попробовать сделать что-то, что не продается в магазине или что вообще никто не делал?
У меня Ezcap 280HB HDMI — коробочка с HDMI passthrough, в которую можно воткнуть флешку и она на нее видео запишет. Стоила 3000 рублей, если интересно линк ниже. Работает замечательно.

ru.aliexpress.com/item/Ezcap-280HB-HDMI-1080-P-HDMI-Blue-Ray-Set/32920391897.html?spm=a2g0s.9042311.0.0.274233edE8XyqU

Заметил, что если текст читается легко, и на каждой фразе думаешь: «Да, точно, так оно и есть. Как же хорошо, что кто-то тоже считает как и я.» — то толку от чтения таких текстов ноль. Даже если это какие-то новые знания, скорее всего их очень сложно применить на практике.

А вот если читашь, и думаешь, что же эта за муть такая и каждую минуту хочется бросить, то в конце в голове оказываются вполне полезные знания, которые потом надолго там остаются, и, что самое важное, их очень легко применять. Скажем, когда-то мне с трудом далось понимание, как работает система с SSL сертификатами, зато после понимания это очень хорошо улеглось в голове и мне не надо проявлять каких-то нечеловеческих усилий воли, чтобы разобраться, что не так с сертификатом или как правильно их сделать.
Да, очень странно, что 50/60 FPS не продвигают так сильно, даже на больших FullHD телевизорах очень напрягает маленькая частота кадров.
Был ультразвуковой увлажнитель — по ощущения он вокруг себя все заливает водой, а в метре от него такой же сухой воздух. По гигрометру на стене влажность повышалась процента на 3.

Решил поддержать отечественного производителя, купил Fanline Aqua VE400-8, типа мойки воздуха. Он процентов на 10-15 повышает влажность в комнате 15м2 (если дверь закрыть). На минимальной скорости вентиляторов практически не шумит. Испаряет литров 6 в сутки.

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

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

А один раз после посещения агенства, которое конкретно меня запутало и ничего хорошего не смогло предложить, зашел напрямую на сайт туроператора, выбрал там тур, оплатил его онлайн, скачал все необходимые документы, сам распечатал и потратил на все минут 15. Я тогда не знал, что так типа делать плохо. Вот мне очень интересно, почему до сих пор существуют эти агенства. Почему нет просто пары-тройки онлайн агрегаторов туроператоров, но таких, которые просто перенаправляли бы на турагенства.
Правильно я понимаю, что эти 10 гигабит в секунду на всех, а не на каждого клиента? Тогда надо хотя бы со switching capacity сравнивать. Сейчас уже много свитчей продается у которых оно больше терабита в секунду.
Да видимо раньше когда ничего не работало все и лазили руками по /proc, сейчас конечно не нужден этот текстовый формат.
Я не говорил про то, что снимать 4К не надо. Я говорил, что FullHD с профессиональной видеокамеры будет лучше, чем 4К со смартфона. Независимо от того, смотреть это на 4К мониторе или на fullHD.

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

И наверное мы по-разному понимаем термин «любитель». На мой взгляд любитель — это тот, кто не зарабатывает деньги на каком-то навыке. То есть кто-то может взять свой кенон 6Д без второго слота на свадьбу друга и сделать гораздо более качественные фото, чем приглашенный за деньги свадебный фотограф (как с художественной стороны так и с технической). И если у него сломается карта памяти, он просто скажет «извини друг, фотки запоролись», и к нему никаких претензий не будет. Многим любителям очень важно качество, потому что им нужно видеть отличный результат своей деятельности.
С кропом на 4К там какая-то мутная история. Надо разбираться серьезно.

Кенон не хочет скейлить картинку, 6720 по горизонтали в стандартный 4Kшный 4096 — это в 1.64 раза. Возможно они посчитали, что это ухудшит качество.

Вот статья с размышлениями на эту тему — www.slrlounge.com/defence-4k-5d-mark-iv

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

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

Или поедет на пляж, потом будет рассказывать. «Там было так красиво, просто неземной пейзаж, вот, посмотри, я сфоткал, но фото конечно никогда не передаст всей красоты». А потом зайдет на фотосайт какой-нибудь, увидит это же место и будет говорить «А я там был, там на самом деле не так красиво, это он все нафотошопил». Опять же — оставил бы телефон в отеле и не было бы казуса.

Ну и если вернуться к видео — при съемке в 4К на людей уже надо грим накладывать, чтобы страшно не было (если нормальный 4К конечно, а не из айфона). Да и если что-то другое снимать — тоже придется серьезно подготовиться и к съемке и к постобработке. Принести 3-10 килограмм фото- видео- техники это самое простое в этом процессе.
По поводу второго слота — думаю это увеличило бы цену, насколько — неизвестно, но тогда некоторые люди захотели бы перейти на никон из-за этого. Думаю програм-менеджеры в кеноне подумали, взвесили все за и против, и решили, что камера без второго слота и по более низкой цене будет выглядеть более привлекательно.

По поводу 4К — для fullHD нормальный битрейт 50Мбит/с примерно, значит для 4K будет 200МБит/с. Есть хоть в одном фотоаппарате такой? Вообще нужен хороший разбор от специалиста в области видео, желательно того, кто в телевидении или кинематографии работает, чтобы разъяснил, на что там надо смотреть.

4К и в айфоне есть, но это не означает, что айфон лучше снимает скажем, чем вот это store.sony.ru/product/videokamera-sony-pxw-fs5-311974
Ладно, наверное я тут написал чушь, в видео плохо разбираюсь. Кенон может только с кодеком mjpeg 4K писать, который не очень эффективен, поэтому такой битрейт.

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

В-общем думаю съемка видео у кенона на уровне.

Ну да, было бы интересно посмотреть

6D вообще-то позиционируется как камера для любителя. Снимаете свадьбы — берите 5Д, там 2 слота.
Может быть они просто не хотят добавлять 4к посредственного качества?

Вот скажем у 5D Mark4
Схема дискретизации цветов — 4K — YCbCr4:2:2 (8 бит)
битрейт — 4K (29.97p/25.00p/24.00p/23.98p): прибл. 500 Мбит/с

А у сони A9 (которая стоит в 2(!) раза дороже)
цветовая дискретизация там вроде как 4:2:0, даже в характеристиках постеснялись написать
XAVC S4K: 3840 x 2160 (30p, 100M) — что это за шлак? Да я со своего 6D 1080p растяну до 4к и то же самое получится.

Information

Rating
Does not participate
Works in
Registered
Activity