|
При прохождении теста 1 в нем оказались вопросы, который во-первых в 1 лекции не рассматривались, во-вторых, оказалось, что вопрос был рассмаотрен в самостоятельно работе №2. Это значит, что их нужно выполнить перед прохождением теста? или это ошибка? |
Новосибирский Государственный Университет
Опубликован: 20.08.2013 | Доступ: свободный | Студентов: 873 / 41 | Длительность: 14:11:00
Темы: Программирование, Графика и дизайн
Специальности: Программист, Системный архитектор
Самостоятельная работа 4:
Классификация изображений с использованием bag-of-words методов
6.4. Приложение Г. Исходный код заголовочного файла модуля, содержащего реализацию основных стадий bag-of-words подхода
#include <opencv2/features2d/features2d.hpp>
#include <opencv2/ml/ml.hpp>
#include <vector>
#include <string>
cv::Mat TrainVocabulary(const std::vector<std::string>&
filesList, const std::vector<bool>& is_voc, const
cv::Ptr<cv::FeatureDetector>& keypointsDetector, const
cv::Ptr<cv::DescriptorExtractor>& descriptorsExtractor, int
vocSize);
cv::Mat ExtractFeaturesFromImage(
cv::Ptr<cv::FeatureDetector> keypointsDetector,
cv::Ptr<cv::BOWImgDescriptorExtractor> bowExtractor, const
std::string& fileName);
void ExtractTrainData(const std::vector<std::string>&
filesList, const std::vector<bool>& isTrain, const cv::Mat&
responses,
const cv::Ptr<cv::FeatureDetector>&
keypointsDetector, const
cv::Ptr<cv::BOWImgDescriptorExtractor>& bowExtractor,
cv::Mat& trainData, cv::Mat& trainResponses);
cv::Ptr<CvRTrees> TrainClassifier(const cv::Mat& trainData,
const cv::Mat& trainResponses);
int Predict(const cv::Ptr<cv::FeatureDetector>
keypointsDetector, const
cv::Ptr<cv::BOWImgDescriptorExtractor> bowExtractor,
const cv::Ptr<CvRTrees> classifier, const
std::string& fileName);
cv::Mat PredictOnTestData(const std::vector<std::string>&
filesList, const std::vector<bool>& isTrain,
const cv::Ptr<cv::FeatureDetector> keypointsDetector,
const cv::Ptr<cv::BOWImgDescriptorExtractor> bowExtractor,
const cv::Ptr<CvRTrees> classifier);
cv::Mat GetTestResponses(const cv::Mat& responses, const
std::vector<bool>& isTrain);
float CalculateMisclassificationError(cv::Mat& responses,
cv::Mat& predictions);
6.5. Приложение Д. Исходный код модуля, содержащего реализацию основных стадий bag-of-words подхода
#include "bow.h"
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
Mat TrainVocabulary(const vector<string>& filesList, const
vector<bool>& is_voc,
const Ptr<FeatureDetector>& keypointsDetector, const
Ptr<DescriptorExtractor>& descriptorsExtractor, int
vocSize)
{
/*
TODO: реализовать функциональность,
описаннную в разделе 3.1.2
*/
}
Mat ExtractFeaturesFromImage(
Ptr<FeatureDetector> keypointsDetector,
Ptr<BOWImgDescriptorExtractor> bowExtractor,
const string& fileName)
{
/*
TODO: реализовать функциональность,
описаннную в разделе 3.1.2
*/
}
void ExtractTrainData(const vector<string>& filesList,
const vector<bool>& isTrain,
const Mat& responses,
const Ptr<FeatureDetector>& keypointsDetector,
const Ptr<BOWImgDescriptorExtractor>& bowExtractor,
Mat& trainData,
Mat& trainResponses)
{
/*
TODO: реализовать функциональность,
описаннную в разделе 3.1.2
*/
}
Ptr<CvRTrees> TrainClassifier(const Mat& trainData,
const Mat& trainResponses)
{
/*
TODO: реализовать функциональность,
описаннную в разделе 3.1.2
*/
}
int Predict(const Ptr<FeatureDetector> keypointsDetector,
const Ptr<BOWImgDescriptorExtractor> bowExtractor,
const Ptr<CvRTrees> classifier,
const string& fileName)
{
/*
TODO: реализовать функциональность,
описаннную в разделе 3.1.2
*/
}
Mat PredictOnTestData(const vector<string>& filesList,
const vector<bool>& isTrain,
const Ptr<FeatureDetector> keypointsDetector,
const Ptr<BOWImgDescriptorExtractor> bowExtractor,
const Ptr<CvRTrees> classifier)
{
/*
TODO: реализовать функциональность,
описаннную в разделе 3.1.2
*/
}
Mat GetTestResponses(const Mat& responses,
const vector<bool>& isTrain)
{
/*
TODO: реализовать функциональность,
описаннную в разделе 3.1.2
*/
}
float CalculateMisclassificationError(Mat& responses,
Mat& predictions)
{
/*
TODO: реализовать функциональность,
описаннную в разделе 3.1.2
*/
}
