SFM-Modul für OpenCV

Probleme bei der Installation?
barisoezcan
User
Beiträge: 73
Registriert: Freitag 15. März 2013, 19:38

Hallo,

ich nutze Python 3.5.2 auf meinem Windows-Rechner und habe die OpenCV-Bibliothek nachinstalliert.
Jetzt wollte ich auch das SFM-Modul installieren (http://docs.opencv.org/3.1.0/db/db8/tut ... ation.html), jedoch steht auf dieser Webseite, dass das Modul nur für Linux/GNU-Systeme verfügbar ist.

Kann mir jemand dabei weiterhelfen?
BlackJack

@barisoezcan: Ubuntu ist eine ganz brauchbare Linux-Distribution. :-)
barisoezcan
User
Beiträge: 73
Registriert: Freitag 15. März 2013, 19:38

Ja gut :D
Ich brauche das aber auf der Arbeit und darf Windows nicht ersetzen ^^
Kann man das Modul irgendwie doch auf Windows installieren?
Wenn nein, was ist der Grund?
BlackJack

@barisoezcan: Wenn man sich die Abhängigkeiten anschaut die dort gelistet sind, dann werden die Log-Geschichten anscheinend primär für Linux entwickelt. Keine Ahnung ob die sich auch für Windows übersetzen lassen. Es scheint zumindest nicht so leicht zu sein das sich bisher jemand gefunden hat das für dieses SFM-Modul zu machen.
barisoezcan
User
Beiträge: 73
Registriert: Freitag 15. März 2013, 19:38

Kannst du mir denn ein anderes SFM-Modul/Bibliothek, was für Windows geeignet ist, empfehlen?
barisoezcan
User
Beiträge: 73
Registriert: Freitag 15. März 2013, 19:38

Ich bin jetzt hierauf gestoßen: https://github.com/opencv/opencv_contri ... bd2461ba96
Ist das so zu verstehen, dass ich beim Erstellen vom opencv_contrib-Modul einfach diese 4 CMake-Dateien wie angezeigt umändere, und dann müsste das SFM-Modul auch unter Windows laufen?
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Compilierst du die OpenCV denn selbst?
barisoezcan
User
Beiträge: 73
Registriert: Freitag 15. März 2013, 19:38

Ich hatte OpenCV zusammen mit opencv_contrib mithilfe von CMake und dem Visual Studio 2013 Compiler erstellt.
OpenCV und die Module aus opencv_contrib laufen auch. Bloß das SFM-Modul aus opencv_contrib läuft nicht.
Hier wird erklärt, dass das SFM-Modul nur für Linux-Systeme verfügbar ist: http://docs.opencv.org/3.1.0/db/db8/tut ... ation.html
Es scheint nämlich, dass einige der dort aufgelisteten Abhängigkeiten (glogs, gflags) nicht unter Windows verfügbar sind.
Jetzt habe ich diese Seite gefunden, wo einige Änderungen der Makefiles aufgelistet sind: https://github.com/opencv/opencv_contri ... d86301de11
Und meine Frage ist nun, ob bei einem erneuten Kompilieren des OpenCV mit opencv_contrib mit diesen geänderten Makefiles das SFM-Modul laufen könnte.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ja, dann sieht's zumindest oberflaechlich so aus, als ob das funktionieren koennte. Aber warum probierst du es nicht einfach?
barisoezcan
User
Beiträge: 73
Registriert: Freitag 15. März 2013, 19:38

Hab ich jetzt gerade...

Ich hab dann versucht erstmal in Visual Studio 2013 mit C++ zu includen (bevor ich versuche es in Python einzubinden):
[codebox=cpp file=Unbenannt.cpp]#include <opencv2/sfm.hpp>[/code]
Bekomme dabei jedoch die folgende Fehlermeldung:
1>c:\users\bob\documents\visual studio 2013\projects\opencv3.2_test\opencv3.2_test\quelle.cpp(2): fatal error C1083: Datei (Include) kann nicht geöffnet werden: "opencv2/sfm.hpp": No such file or directory"
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Naja das hat ja nun erstmal vor allem was mit deinem Projektsetup in VS2013 zu tun. Da muessen die Suchpfade fuer den Praeprozessor genauso stimmen wie die Linker settings etc.

Aber hast du die Bibliothekt schon *gebaut*? Das muss schon vorher sein, ein cmake-file muss auch mittels cmake ausgefuehrt werden.
barisoezcan
User
Beiträge: 73
Registriert: Freitag 15. März 2013, 19:38

Ich bin exakt diesen Anweisung gefolgt: https://putuyuwono.wordpress.com/2015/0 ... -7-64-bit/
Die anderen Module aus dem opencv_contrib Repository funktionieren, bloß das SfM-Modul nicht.

Ich versuche jetzt mal die einzelnen Abhängigkeiten, die auf der Seite http://docs.opencv.org/3.1.0/db/db8/tut ... ation.html aufgelistet sind, zu installieren.
Eigen funktioniert schonmal, GLog https://github.com/google/glog bekomme ich jedoch nicht ans Laufen.
Hat jemand ne Idee, wie ich GLog auf Windows installieren kann?
https://github.com/google/glog/blob/mas ... ME.windows das hilft mir nämlich nicht wirklich weiter.

EDIT:
Es klappt nun!
Ich musste nur "C:\Users\bob\Desktop\glog-master\src\windows" im Visual Studio 2013 bei den zusätzlichen Includeverzeichnissen eingeben.
Dofti
User
Beiträge: 3
Registriert: Dienstag 31. Januar 2017, 15:08

Hallo,
ich bin ebenso dabei OpenCV mit dem sfm Modul zu installieren. Allerdings schreibe ich C++, was bezüglich der Installationsroutine keinen Unterschied machen sollte. Dazu bin ich dieser Anleitung gefolgt:
https://translate.google.com/translate? ... &sandbox=1

Wenn ich glog-master, gflags-2.2.0, suitesparse-metis-for-windows-1.3.1, eigen-3.2.10 und ceres-solver-1.12.0 nur in der Release Version in Visual Studio baue und installiere, darüber hinaus VTK-7.1.0 in der Debug und Release Version baue und installiere, kann ich OpenCV in der Release Version bauen und installieren. Versuche ich jedoch die Debug Libraries für OpenCV zu bauen, wirft mir der Compiler folgenden Fehler:
error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2'

Hat es jemand geschafft die Debug Libraries für OpenCV zu bauen? Und sollte ich glog, gflags, suitesparse und ceres in der Debug oder Release Version bauen?
barisoezcan
User
Beiträge: 73
Registriert: Freitag 15. März 2013, 19:38

Hallo Dofti,

ich habe alle Abhängigkeiten und auch OpenCV selbst nur in der Debug-Version gebaut und installiert.
Es läuft auch (nur) im Debug-Modus bei mir.

Ich würde dir empfehlen die Abhängigkeiten (Glog, Gflags, usw) evtl. auch in der Debug-Version zu bauen.
Dofti
User
Beiträge: 3
Registriert: Dienstag 31. Januar 2017, 15:08

Hallo Baris,

vielen Dank für die Info! Da bei mir wie gesagt der Fehler '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' kommt, würde mich interessieren welche Versionen von Eigen, Glog, Gflags, Ceres, Suitesparse und VTK und OpenCV du verwendet hast. Eventuell habe ich hier ein Kompabilitätsproblem.
barisoezcan
User
Beiträge: 73
Registriert: Freitag 15. März 2013, 19:38

Ich habe verwendet:
- eigen-3.3.2
- gflags-2.2.0
- glog-0.3.4
- ceres-solver-1.12.0
- vtk-7.1.0
- opencv-3.2.0

Ich habe alles mit MS Visual Studio 2013 unter Windows 7 gebaut und installiert.
Ceres Solver habe ich (soweit ich mich erinnere) ohne SuiteSparse installiert.
Dofti
User
Beiträge: 3
Registriert: Dienstag 31. Januar 2017, 15:08

Es hat nun mit eigen-3.2.10, gflags-2.2.0, glog-master, suitesparse-metis-for-windows-1.3.1, ceres-solver-1.12.0, VTK-7.1.0 und opencv-3.2.0 funktioniert. Vielen Dank für die Hilfe, Baris!
barisoezcan
User
Beiträge: 73
Registriert: Freitag 15. März 2013, 19:38

Woran lag nun das genaue Problem?
guddy
User
Beiträge: 3
Registriert: Samstag 6. Januar 2018, 18:42

hallo.
ich bin gerade auch dabei mich in dieses Thema einzulesen doch irgendwie komme ich nicht weiter.

ich würde gerne ein 3d Modell aus mehereren Bildern erstellen, dabei bin ich jetzt über folgende Sachen gestolpert:
https://docs.opencv.org/trunk/d8/d8c/group__sfm.html
https://gilscvblog.com/2014/05/15/an-ea ... struction/
https://github.com/mapillary/OpenSfM

Aber irgendwie bin ich nicht in der Lage wenigstens eins davon zum laufen zu bringen.
Hat das schon jemand gemacht?

Wäre super, wenn mir da jemand helfen könnte
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Also auf *meinem* Computer, mit *meinem* Betriebssystem, mit *meinem* Compiler und mit *meinen* Schritten, die ich getan habe, laeuft alles wie geschmiert. Muss also etwas mit *deinem* Computer, *deinem* Betriebssystem, *deinem* Compiler, und *deinen* Schritten zu tun haben, die zu *deinen* Fehlern gefuehrt haben, das es nicht klappt.

Merkste selber, oder?
Antworten