При прохождении теста 1 в нем оказались вопросы, который во-первых в 1 лекции не рассматривались, во-вторых, оказалось, что вопрос был рассмаотрен в самостоятельно работе №2. Это значит, что их нужно выполнить перед прохождением теста? или это ошибка? |
Новосибирский Государственный Университет
Опубликован: 20.08.2013 | Доступ: свободный | Студентов: 865 / 38 | Длительность: 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 */ }