Перейти к содержимому
Compvision.ru

mrgloom

Пользователи
  • Количество публикаций

    2 302
  • Зарегистрирован

  • Посещение

  • Days Won

    142

Все публикации пользователя mrgloom

  1. Сравнение изображений

    Можно поподробней что после U-net происходит? плотности чего? монте-карло для чего?
  2. Можете тут посмотреть, но применимость зависит от того что вы на вход подаёте. У меня там есть работа с переменной длиной строки, но размер изображения константный. И всякие tesseract тоже с LSTM. https://github.com/tesseract-ocr/tesseract/wiki/4.0-with-LSTM
  3. По результатам разговора самого с собой запилил примеры https://github.com/mrgloom/Char-sequence-recognition С LSTM пока не разобрался, т.к. непонятно как подавать аутпут блоб [rows,cols,channels] из сверточной части в LSTM Тут есть пример для Keras Но как то не очевидно почему так и будет ли это эквивалентно подаче по колонке как на картинке ниже https://github.com/fchollet/keras/blob/master/examples/image_ocr.py#L440
  4. Гауссианы это хорошо, но одной отделаться не получится. Может попробую потом что то такое: http://scikit-learn.org/stable/modules/mixture.html Насчёт вебки скорее всего надо переучить, не знаю насколько репрезентативен этот датасет: https://archive.ics.uci.edu/ml/datasets/Skin+Segmentation И еще кстати как минус decision tree я не знаю как можно выкрутить recall на полную, т.е. это может быть полезно в зачах типа детектирования лиц, как первый дешевый шаг который снижается пространство для поиска с recall=1.0.
  5. Изначально decision tree, т.к. этот метод интерпретируемый, т.е. там дерево из threshold'ов которые выучены из данных, чтобы не было таких вот хардкодов threshold'ов или in range как тут: http://bytefish.de/blog/opencv/skin_color_thresholding/ https://github.com/WillBrennan/SkinDetector И да их сначала можно выучить, а потом для скорости захардкодить) Такой же вопрос почему в grabcut используется GMM? по сути нам там без разницы какой метод будет выдавать probability пикселя? https://github.com/opencv/opencv/blob/c8783f3e235f81edb97279fafabcf12ec43ccc9f/modules/imgproc/src/grabcut.cpp
  6. Я смотрел эту репу и там как раз непонятно как всё делается так что не рекомендую. Ибо загрузка из json, по мне так менее читаемо чем модель на питоне. А так там походу стандартный трюк с reshape+permute используется. https://github.com/imlab-uiip/keras-segnet/blob/master/model_5l.json Да и репа мертвая походу, на вопросы не отвечают https://github.com/imlab-uiip/keras-segnet/issues/12 Как я понял в ф-ию которая считает crossentropy можно подавать матрицу и сумма по последнему дименшену должна быть 1.0 (т.е. после softmax), т.е. он посчитает по каждому row и проссумирует loss. Но всё это делается в неявном виде так что не очень приятно.
  7. Возможно можно посчитать dice loss для каждого выхода - sigmoid'ы и проссумировать, чтобы получить общий loss, но не уверен. А так в терминах keras'а можно использовать sigmoid + binary_crossentropy или softmax + categorical_crossentropy.
  8. Проверил работает, но ограничение константная длина надписи. Теперь интересно какой нибудь cnn+lstm накрутить как тут: https://github.com/synckey/tensorflow_lstm_ctc_ocr
  9. Похоже несколько аутпутов не надо, просто можно всё лепить в один вектор судя по этому проекту: https://github.com/matthewearl/deep-anpr/blob/db823ebe283f4e226a80dbbe4cb5b45867bf0485/common.py#L39 https://github.com/matthewearl/deep-anpr/blob/db823ebe283f4e226a80dbbe4cb5b45867bf0485/train.py#L172 https://github.com/matthewearl/deep-anpr/blob/db823ebe283f4e226a80dbbe4cb5b45867bf0485/train.py#L125 http://matthewearl.github.io/2016/05/06/cnn-anpr/ Хотя в пейпере от гугла судя по картинке таки несколько аутпутов: http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/42241.pdf
  10. Модель Сэмпл Что то похожее делается тут на mxnet, но непонятно причем там конкат и какой там в итоге аутпут - матрица 10x4 ? как быть если у нас буквы и цифры, т.е. длины множеств разные (3 и 10 в изначальном примере)? https://github.com/apache/incubator-mxnet/blob/master/example/captcha/mxnet_captcha.R#L13 и по сути изначальная синтетическая задача расширяется на номера машин и капчи. Тоже самое тут только уже на python, а не на R и для plate recognition. https://github.com/szad670401/end-to-end-for-chinese-plate-recognition/blob/master/train.py#L108
  11. Тут именно genetic programming упоминается https://github.com/rhiever/tpot Но tpot это опять же к вопросу оптимальных параметров моделей(хотя там еще какие то типо ансамбли из моделей вроде) из sklearn, а не ваш таск.
  12. Просто grid search с отстреливанием по времени исполнения\пику памяти не подходит? Есть еще варианты с bayesian optimization и genetic programming, но я это встречал скорее в контексте подбора параметров модели для ML. Есть вообще то что то почитать на предмет оптимизаторов которые работаю по сути с черным ящиком(без градиента и т.д.)?
  13. По opencv dnn написано ' поддержка основных слоев нейронных сетей ', т.е. как и все прочие 'конвертеры' тут как я предполагаю есть много но.
  14. В Photoscan кстати есть генерация DEM / Orthophoto from Dense cloud, не знаю как по поводу качества, но по памяти это должно быть экономнее чем из меша. http://www.agisoft.com/forum/index.php?topic=5357.0
  15. В Caffe LSTM layer есть, но я не пробовал: http://caffe.berkeleyvision.org/tutorial/layers/lstm.html На caffe я бы не ставил. MXNet я не пробовал, но это выглядит более подходящим вариантом, и как бонус там еще есть поддержка Mobile Devices и Distributed Training. Есть еще такой проект, но видимо LSTM/RNN там в зачаточном состоянии. https://github.com/tiny-dnn/tiny-dnn Вообще меня тоже интересует вопрос как например python код из Keras перевести на C++, по идее можно Keras->Tensorflow->Tensorflow C++ (но возможно C++ api не полный?) ?
  16. Кстати вот про гипер сферы https://arxiv.org/pdf/1704.08063.pdf
  17. Итак небольшой апдейт OpenMVS может сделать orthophoto и у вас не получается потому что не правильно выставлена нормаль, но как её найти это вопрос, возможно можно попробовать нормаль к геоиду? или нормаль к 'поверхности земли'. В целом же проект OpenMVS вроде как не про это. https://github.com/cdcseacave/openMVS/issues/232 OpenMVG - возможно скоро появится такая функциональность. https://github.com/openMVG/openMVG/issues/914 https://github.com/openMVG/openMVG/issues/978 Есть еще такое - идея нашлепать изображения в мозаику используя матрицу гомографии, не знаю насколько это только получится orthophoto. https://github.com/openMVG/openMVG/issues/447 OpenDroneMap - судя по описанию как раз всё что нужно умеет, но я не пробовал, хочу попробовать под VM или docker. Использует внутри другой SFM 'движок' не OpenMVG. https://github.com/OpenDroneMap/OpenDroneMap
  18. Можете описать весь pipeline что вы делаете? а то я OpenMVG/OpenMVS не пользовался. Большие числа это похоже на ECEF, а не GPS. По идее всё же можно сначала решить задачу генерации ортофотоплана (вид сверху), а потом через gdal варпнуть и загеореференсить (но надо еще как то получить матрицу афинного преобразование gps to pixel).
  19. Не помню точно, геореференсед ли этот tiff, но судя по проекции (которая кстати выглядит не как вид сверху ), не знаю как она называется Geographic ? может Model Tie Point это то? exiftool raw output: ExifTool Version Number : 10.59 File Name : ortho.tif Directory : . File Size : 32 MB File Modification Date/Time : 2016:07:31 20:27:32+03:00 File Access Date/Time : 2016:07:31 20:27:30+03:00 File Creation Date/Time : 2016:07:31 20:27:10+03:00 File Permissions : rw-rw-rw- File Type : TIFF File Type Extension : tif MIME Type : image/tiff Exif Byte Order : Little-endian (Intel, II) Image Width : 3694 Image Height : 4096 Bits Per Sample : 8 8 8 8 Compression : LZW Photometric Interpretation : RGB Strip Offsets : (Binary data 1085 bytes, use -b option to extract) Orientation : Horizontal (normal) Samples Per Pixel : 4 Rows Per Strip : 32 Strip Byte Counts : (Binary data 875 bytes, use -b option to extract) Planar Configuration : Chunky Extra Samples : Unassociated Alpha Sample Format : Unsigned; Unsigned; Unsigned; Unsigned Pixel Scale : 1.86495400739727e-006 1.4079864172345e-006 0 Model Tie Point : 0 0 0 -81.7080861843233 41.2293646671544 0 Geo Tiff Version : 1.1.0 GT Model Type : Geographic GT Raster Type : Pixel Is Area Geographic Type : WGS 84 Geog Citation : WGS 84 Image Size : 3694x4096 Megapixels : 15.1 Думаю более точно можно посмотреть через gdalinfo, там должна быть информация Corner Coordinates и Origin http://www.gdal.org/gdalinfo.html Да, что то не то, возможно я когда то ресайзил его и тэги дропнулись. gdalinfo ortho.tif Driver: GTiff/GeoTIFF Files: ortho.tif Size is 689, 576 Coordinate System is `' Metadata: TIFFTAG_DOCUMENTNAME=/tmp/ortho.tif TIFFTAG_SOFTWARE=GraphicsMagick 1.3.18 2013-03-10 Q8 http://www.GraphicsMagick.org/ Image Structure Metadata: COMPRESSION=LZW INTERLEAVE=PIXEL Corner Coordinates: Upper Left ( 0.0, 0.0) Lower Left ( 0.0, 576.0) Upper Right ( 689.0, 0.0) Lower Right ( 689.0, 576.0) Center ( 344.5, 288.0) Band 1 Block=689x2 Type=Byte, ColorInterp=Red Mask Flags: PER_DATASET ALPHA Band 2 Block=689x2 Type=Byte, ColorInterp=Green Mask Flags: PER_DATASET ALPHA Band 3 Block=689x2 Type=Byte, ColorInterp=Blue Mask Flags: PER_DATASET ALPHA Band 4 Block=689x2 Type=Byte, ColorInterp=Alpha Меня кстати больше интересует генерация geotiff из point cloud. И еще раз geotiff != orthomap?
  20. А к GPS как привязано? каждый узел сетки? или общий bbox? Меня тоже интересует этот вопрос, по идее достаточно только gps bbox + высоты точки (altitude) чтобы получить pixel to gps. gdal не работает с point cloud или mesh, для привязки растра к GPS координатам можно использовать Affine GeoTransform http://www.gdal.org/gdal_datamodel.html В итоге orthomap выглядит как то так: https://habrastorage.org/web/629/0e3/521/6290e352148b43f384513357847c26db.tif Фотки отсюда, можно на этом поэксперементировать. https://github.com/OpenDroneMap/odm_data_bellus
  21. Сравнение изображений

    Не понял что вы имеете ввиду, на вход подаются пары похожие пары тайлов и не похожие пары тайлов, после обучения сеть отвечает на вопрос похожи ли 2 конкретных тайла или нет, есть еще tripple loss где подаются тройки, но идея примерна такая же. В репе Keras'a есть пример, наверно можно улучшить заменив MLP на CNN. https://github.com/fchollet/keras/blob/master/examples/mnist_siamese_graph.py
  22. 1. KCF сейчас топ трекер? 2. Если такие датасеты в публичном доступе как в пейпере social lstm?
  23. Сравнение изображений

    Как насчёт того чтобы натренировать siamese network для определения меры похожести тайлов?
  24. А кто нибудь пробовал трекеры на нейросетях типа https://github.com/bertinetto/siamese-fc
  25. Сравнение изображений

    А из чего это следует |log2(max(max(H,W), 256)/256|+1 ? Похоже что в таком идеальном случае можно сравнивать через template matching или chamfer matching. На кагле кстати была задача по сегментации спутниковых фотоснимков https://www.kaggle.com/c/dstl-satellite-imagery-feature-detection p.s. задача интересная, держите нас в курсе.
×