diff --git a/.gitignore b/.gitignore index 7fd92b6..102657e 100644 --- a/.gitignore +++ b/.gitignore @@ -41,6 +41,7 @@ scripts/results data/INRIAPerson/sigset data/KTH/sigset data/CaltechPedestrians/annotations +data/CaltechPedestrians/*.xml ### Sublime ### *.check_cache diff --git a/openbr/plugins/algorithms.cpp b/openbr/plugins/algorithms.cpp index 4aa619d..06e3275 100644 --- a/openbr/plugins/algorithms.cpp +++ b/openbr/plugins/algorithms.cpp @@ -52,7 +52,7 @@ class AlgorithmsInitializer : public Initializer Globals->abbreviations.insert("AgeGenderDemo", "Stream(SaveMat(original)+Cvt(Gray)+Cascade(FrontalFace)+Expand+++/+Discard+RestoreMat(original)+Draw(inPlace=true)+DrawPropertiesPoint([Age,Gender],Affine_0,inPlace=true)+SaveMat(original)+Discard+Contract+RestoreMat(original)+FPSCalc+Show(false,[AvgFPS,Age,Gender])+Discard)"); Globals->abbreviations.insert("ShowOpticalFlowField", "Stream(SaveMat(original)+AggregateFrames(2)+OpticalFlow(useMagnitude=false)+Grid(100,100)+DrawOpticalFlow+FPSLimit(30)+Show(false)+Discard)"); Globals->abbreviations.insert("ShowOpticalFlowMagnitude", "Stream(AggregateFrames(2)+OpticalFlow+Normalize(Range,false,0,255)+Cvt(Color)+Draw+FPSLimit(30)+Show(false)+Discard)"); - Globals->abbreviations.insert("ShowMotionSegmentation", "Stream(DropFrames(5)+SaveMat(original)+AggregateFrames(2)+OpticalFlow+CvtUChar+Segmentation+DrawSegmentation+Draw+FPSLimit(30)+Show(false)+Discard)"); + Globals->abbreviations.insert("ShowMotionSegmentation", "Stream(DropFrames(5)+AggregateFrames(2)+OpticalFlow+CvtUChar+WatershedSegmentation+DrawSegmentation+Draw+FPSLimit(30)+Show(false)+Discard)"); Globals->abbreviations.insert("HOG", "Stream(DropFrames(5)+Cvt(Gray)+Grid(5,5)+ROIFromPts(32,24)+Expand+Resize(32,32)+Gradient+RectRegions+Bin(0,360,8)+Hist(8)+Cat)+Contract+CatRows+KMeans(500)+Hist(500)+SVM"); Globals->abbreviations.insert("HOF", "Stream(DropFrames(5)+Grid(5,5)+AggregateFrames(2)+OpticalFlow+ROIFromPts(32,24)+Expand+Resize(32,32)+Gradient+RectRegions+Bin(0,360,8)+Hist(8)+Cat)+Contract+CatRows+KMeans(500)+Hist(500)"); diff --git a/openbr/plugins/draw.cpp b/openbr/plugins/draw.cpp index 09c1bf8..00f9a8e 100644 --- a/openbr/plugins/draw.cpp +++ b/openbr/plugins/draw.cpp @@ -384,8 +384,6 @@ class DrawSegmentation : public UntrainableTransform Q_OBJECT Q_PROPERTY(bool fillSegment READ get_fillSegment WRITE set_fillSegment RESET reset_fillSegment STORED false) BR_PROPERTY(bool, fillSegment, true) - Q_PROPERTY(QString original READ get_original WRITE set_original RESET reset_original STORED false) - BR_PROPERTY(QString, original, "original") void project(const Template &src, Template &dst) const { @@ -394,14 +392,7 @@ class DrawSegmentation : public UntrainableTransform int numSegments = src.file.get("NumSegments"); dst.file = src.file; - Mat drawn; - if (fillSegment) { - drawn = Mat(segments.size(), CV_8UC3, Scalar::all(0)); - } else { - if (!dst.file.contains(original)) qFatal("You must store the original image in the metadata with SaveMat."); - drawn = dst.file.get(original); - dst.file.remove(original); - } + Mat drawn = fillSegment ? Mat(segments.size(), CV_8UC3, Scalar::all(0)) : src.m(); for (int i=1; ipath.isEmpty() ? "" : Globals->path + "/") + file.name; bool ok = matio.open(filename.toStdString(), "r"); if (!ok) qFatal("Couldn't open the vbb file"); diff --git a/openbr/plugins/stream.cpp b/openbr/plugins/stream.cpp index b11016c..749c44a 100644 --- a/openbr/plugins/stream.cpp +++ b/openbr/plugins/stream.cpp @@ -433,10 +433,12 @@ public: } #ifdef CVMATIO - QString f = basis.file.name; - QString vbb = f.replace(f.lastIndexOf("."), 4, ".vbb"); - vbb.replace(vbb.lastIndexOf("vid"), 3, "annotations"); - annotations = TemplateList::fromGallery(File(vbb)); + if (basis.file.contains("vbb")) { + QString vbb = basis.file.get("vbb"); + annotations = TemplateList::fromGallery(File(vbb)); + } +#else + qWarning("cvmatio not installed, bounding boxes will not be available. Add -DBR_WITH_CVMATIO cmake flag to install."); #endif return true; diff --git a/scripts/downloadDatasets.sh b/scripts/downloadDatasets.sh index 7011117..0cb08f6 100755 --- a/scripts/downloadDatasets.sh +++ b/scripts/downloadDatasets.sh @@ -51,6 +51,8 @@ if [ ! -d ../data/CaltechPedestrians/vid ]; then tar -xf $fname done rm *.tar + ./writeCaltechPedestrianSigset.sh 0 5 train > ../data/CaltechPedestrians/train.xml + ./writeCaltechPedestrianSigset.sh 6 10 test > ../data/CaltechPedestrians/test.xml mv set* ../data/CaltechPedestrians/vid if hash curl 2>/dev/null; then curl -OL "$prefix/annotations.zip" diff --git a/scripts/writeCaltechPedestrianSigset.sh b/scripts/writeCaltechPedestrianSigset.sh new file mode 100755 index 0000000..be8387e --- /dev/null +++ b/scripts/writeCaltechPedestrianSigset.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +echo '' +echo '' +for ((set=$1; set <= $2; set++)); do + echo -e "\t" + for vid in `printf "set%02d/*.seq" $set`; do + if [ $3 == "train" ]; then + vbb=`echo "vbb=\"annotations/$vid\"" | sed s/seq/vbb/` + fi + printf "\t\t\n" + done + echo -e "\t" +done +echo '' diff --git a/scripts/writeKTHSigset.sh b/scripts/writeKTHSigset.sh old mode 100644 new mode 100755 index 5c2abd0..5c2abd0 --- a/scripts/writeKTHSigset.sh +++ b/scripts/writeKTHSigset.sh