LINUX.ORG.RU

Вышла первая версия аналога OpenCV — DCV 0.1

 , ,


4

7

Состоялся релиз первой версии компьютерного зрения DCV. DCV является аналогом OpenCV, написанным на языке D. В отличие от OpenCV, DCV — крайне компактная и простая библиотека. В настоящий момент исходные коды системы занимают всего 1 MB, однако, несмотря на свои крайне компактные размеры, DCV поддерживает не только работу со статическими изображениями, но и захват видео.

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

DCV базируется на крайне удобной библиотеке работы с многомерными массивами — ndslice, которая является более функциональным аналогом Numpy из Python.

С примерами работы системы можно ознакомиться в официальном репозитории проекта.

>>> Подробности

★★

Проверено: Klymedy ()

а по скорости? сравнения есть?

anonymous ()

написанным на языке D

Ещё один новомодный хипстерский язычок?

pudding ()
Ответ на: комментарий от pudding

Ещё один новомодный хипстерский язычок?

Ты D с Go попутал. D это фактически плюсы без костылей.

Xroft ★★ ()

ndslice, которая является более функциональным аналогом Numpy из Python

оо спасибо за наводку :) прохожу курс по машинному обучению, где используют Numpy, крутая штука

eReSik ★★ ()
Ответ на: комментарий от pudding

Ещё один новомодный хипстерский язычок?

Это уже старомодный хипстерский язычок.

Esper ()
Ответ на: комментарий от pudding

Ещё один новомодный хипстерский язычок?

Ему уже больше 10 лет. Язык конечно имеет некоторые свои уродливые бородавки, но весьма удобен в использовании (по сравнению с C++). Это тот случай, когда ты занимаешься непосредственно своей задачей, а не огородом костылей, помогающих обойти проблемы языка, чтобы потом когда-нибудь приступить к решению задачи.

m0rph ★★★★★ ()

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

Не то, чтобы злорадствую. Но слова о «компактных размерах» означают на практике скудный набор реализованных алгоритмов предметной области (ради которых, собственно, библиотека и создаётся). Как вообще это можно подавать в виде достоинства? Захват видео - тривиальная вещь при использовании ffmpeg или gstreamer. CV-библиотека - вещь неслабо нишевая, самые серьёзные вещи в ней будут создаваться людьми от науки, для людей от науки. Си - lingua franca, в том числе, для академической среды. ПМСМ наблюдаем использование D ради использования D. В Project Roadmap нет ни сопряжения с другими языками для написания алгоритмов, ни биндингов к другим языкам. Это помешает взлететь проекту - все подряд не ломанутся портировать все алгоритмы из OpenCV в DCV.

Andrey_Utkin ()

О, отлично! Странно что я ее проглядел. Мне сперва казалось, что это биндинг к OpenCV а потому особо не вглядывался.

wolph ()

Видел тред на первой странице

f3nrir ()
Ответ на: комментарий от anonymous

Скорее всего, жуть - у меня компиляция простенького терминала повесила ось, чего на C не замечено.

Ancient ()

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

java_util_Random ()

А скажем нельзя ли прикрутить к этой системе компьютерного зрения сервис ФайндФэйс из ВПашки, и находить например акки телеведущих, настроив эту программу на считывание новостных передач и выгрузку данных в ФайндФэйс?

anonymous ()

А что мешало не велосипедить, а запилить байндинги к OpenCV?

Pavval ★★★★★ ()

Отличная новость для 3.5 пользователя этого языка!

anonymous ()

Нужна еще одна CV на Rust. Всем по CV

makoven ★★★★ ()
Ответ на: комментарий от eReSik

А что за курс, если не секрет? На какой платформе?

LIKAN ★★★ ()
Ответ на: комментарий от Pavval

А что мешало не велосипедить, а запилить байндинги к OpenCV?

OpenCV если не ошибаюсь имеет C++ интерфейс? Вот это и помешало.

m0rph ★★★★★ ()

"... крайне мала!" Много слов «крайне».

А так, полезно когда есть альтернатива

Zidane ()

Ок, все хорошо кроме одного. Зачем делать это на D?

anonymous ()
Ответ на: комментарий от eReSik

А как там с практикой? Упражнения и примеры (применимые на практике) есть?

wolph ()
Ответ на: комментарий от anonymous

Ок, все хорошо кроме одного. Зачем делать это на D?

А зачем в 21 веке писать на С++?

anonymous ()
Ответ на: комментарий от anonymous

Ок, все хорошо кроме одного. Зачем делать это на D?

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

m0rph ★★★★★ ()

Ура! Наконец-то что-то интересное на D. У них в коде интересная манера импортировать одиночные функции, а не целые пакеты.

unDEFER ★★★★ ()

Не понятен выбор D. Биндинги к нему не сделать, насколько я знаю. GC для математики - это вообще прикол.

Нужно было на расте писать.

RazrFalcon ★★ ()
Ответ на: комментарий от RazrFalcon

А D - надмножество сишки. Кому надо - сишное апи и так подключит и так заюзает.

wolph ()
Ответ на: комментарий от luntik2012

Ну а Си без костылей - asm

Интерестно, а ASM без костылей тогда чем является?

atsym ★★★ ()
Ответ на: комментарий от RazrFalcon

GC для математики - это вообще прикол.

Вы могли бы зайти на гитхаб и поискать по слову «@nogc» И обнаружить там файлик memory.d

В заголовке:

import std.experimental.allocator.mallocator : AlignedMallocator, Mallocator;

И сигнатуру функции

@nogc @trusted T[] alignedAlloc(T)(size_t count, uint alignment = 16)

Этого было бы достаточно, чтобы не писать в пятисотый раз избитый аргумент про ГЦ.

wolph ()
Ответ на: комментарий от wolph

И? Отключение GC для пары функций не отменяет использования GC в целом.

RazrFalcon ★★ ()
Ответ на: комментарий от RazrFalcon

А в чем проблема в использовании GC в целом?

А в принципе, не хочешь GC - делаешь

extern(C) __gshared string[] rt_options = [ "gcopt=initReserve:100 disable:1" ];

wolph ()
Ответ на: комментарий от wolph

А в чем проблема в использовании GC в целом?

google: garbage collection disadvantages

RazrFalcon ★★ ()

Привет от команды opencv

Как говорят англичане, вырастить настоящий английский газон очень просто - нужно посадить траву на ровный участок земли, и после этого регулярно поливать и подстригать его в течение 200 лет :)

Короче говоря, мы всячески приветствуем это начинание и надеемся что ребята продержатся хотя бы несколько лет :) Пока мало кому это удавалось.

Немного критики. Смотря на код библиотеки чувствуется недостаток масштаба в подходе. Переписывать базовую функциональность конечно можно, только 1) библиотека на D врядли когда-нибудь обгонит OpenCV по скорости и 2) сейчас это особо никого не заинтересует, ведь есть OpenCV.

Нужно сделать хотя бы одно очень крутое демо, чтобы народ посмотрел и сказал «вау!». Еще лучше серию демо. Начать можно хотя бы вот с этого уровня: https://www.youtube.com/watch?v=OUbUFn71S4s

V_P ()
Ответ на: комментарий от RazrFalcon

Но ведь у прямого выделения памяти тоже есть «disadvantages», и их достаточно, разве нет?

wolph ()
Ответ на: комментарий от anonymous

А зачем в 21 веке писать на С++?

Чтобы хипстеры в код не совались.

Pavval ★★★★★ ()
Ответ на: комментарий от Xroft

Ещё один новомодный хипстерский язычок?
Ты D с Go попутал.

А, точно! D - это старомодный хипстерский язычок :)

D это фактически плюсы без костылей.
Xroft

Ага - щаз! Это скорее костыли без плюсов! :)

anonymous ()

Поехали. Одни пишут на D другие на Go. Вавилонская башня. Может хватит силы распылять? Фортран вон линкуют и ничего....

dmxrand ()
Ответ на: комментарий от RazrFalcon

При том, что opencv в большинстве случаев используют в качестве питоньего биндинга совместно с numpy.

wolph ()
Ответ на: комментарий от Pavval

А что мешало не велосипедить, а запилить байндинги к OpenCV?

Наверное то, что она как сишная либа нормально юзается из D?

ioway ()
Ответ на: комментарий от wolph

в большинстве случаев

Статистикой не поделитесь? Если и используют, то вряд ли в риалтайм обработке видео. А для картинок и так сойдёт.

RazrFalcon ★★ ()
Ответ на: комментарий от pudding

тред про D
Ещё один новомодный хипстерский язычок?

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

slon ()

Есть ли проект, где эта библиотека используется? Если нет, то всё это бесполезно.

Quasar ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.