folder Tahribat.com Forumları
linefolder Android - IOS Programlama
linefolder Opencv - Histagram Oriented Detection Android



Opencv - Histagram Oriented Detection Android

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    golgi
    golgi's avatar
    Kayıt Tarihi: 11/Aralık/2009
    Erkek

    merhabalar sayın müritler 

     

    Aldığım bir ders gereği android platformunda people detection gibi bir olayı gerçekleştirmem gerekli kameradan alınan frameler anlık olarak işlenecek ve bluetooth ile başka bir platforma(elektronik karta) gönderilecek ancak ne görüntü işeme dersini aldım ne java programlama biliyorum(C# öğrendim) nede android le alakam var 

     

    herneyse yaptığım araştırmalar sonucu işin theoretical arkaplanında histogram oriented gradients methodunu kullanabileceğimi düşündüm sonrada open cv android lib içerisindeki Histogram oriented gradients(HogDescriptor) özelliğini yine open cv nin face detection örneğine implement ettim 

    peki çalıştımı ? sanırım çalıştı face detection örneği başka bir openCV özelliği kullanarak(Cascade classifier)  bulduğu yüzlerin üzerine kare ler çizdiriyor  bende aynen  HogDescriptor kullanarak çizdiriyorum ancak 2-3  saniyede bir frame anca işliyor benim telefon (huawei u8850) epey yavaş      

     

    hog descriptor

    struct CV_EXPORTS HOGDescriptor
    {
        enum { DEFAULT_WIN_SIGMA = -1 };
        enum { DEFAULT_NLEVELS = 64 };
        enum { DESCR_FORMAT_ROW_BY_ROW, DESCR_FORMAT_COL_BY_COL };
    
        HOGDescriptor(Size win_size=Size(64, 128), Size block_size=Size(16, 16),
                      Size block_stride=Size(8, 8), Size cell_size=Size(8, 8),
                      int nbins=9, double win_sigma=DEFAULT_WIN_SIGMA,
                      double threshold_L2hys=0.2, bool gamma_correction=true,
                      int nlevels=DEFAULT_NLEVELS);
    
        size_t getDescriptorSize() const;
        size_t getBlockHistogramSize() const;
    
        void setSVMDetector(const vector<float>& detector);
    
        static vector<float> getDefaultPeopleDetector();
        static vector<float> getPeopleDetector48x96();
        static vector<float> getPeopleDetector64x128();
    
        void detect(const GpuMat& img, vector<Point>& found_locations,
                    double hit_threshold=0, Size win_stride=Size(),
                    Size padding=Size());
    
        void detectMultiScale(const GpuMat& img, vector<Rect>& found_locations,
                              double hit_threshold=0, Size win_stride=Size(),
                              Size padding=Size(), double scale0=1.05,
                              int group_threshold=2);
    
        void getDescriptors(const GpuMat& img, Size win_stride,
                            GpuMat& descriptors,
                            int descr_format=DESCR_FORMAT_COL_BY_COL);
    
        Size win_size;
        Size block_size;
        Size block_stride;
        Size cell_size;
        int nbins;
        double win_sigma;
        double threshold_L2hys;
        bool gamma_correction;
        int nlevels;
    
    private:
        // Hidden
    }

     

    kodu bu şekilde çalıştırdım

     



    HOGDescriptor hog = new HOGDescriptor();

    MatOfFloat descriptors = HOGDescriptor.getDefaultPeopleDetector();

    MatOfPoint found = new MatOfPoint();

    hog.setSVMDetector(descriptors);

    hog.detectMultiScale(mGray, faces, weights);

     

     

    daha önce bu şeyi kullanmış bir arkadaş varsa akıl danışmak isterim ne yapmak gerek 

    birde şu  BaseLoaderCallback içerisindeki kısımı tam çözemedim ne işe yaramakta(face detection örneğinde)

     

    isterseniz tüm uygulamayıda gönderebilirim 

     

     

     

     

     

     

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    erc
    erc's avatar
    Kayıt Tarihi: 23/Aralık/2010
    Erkek

    Hocam tabi sen bilirsin ben cok bilmem face detection isini ama hybird(phonegap) gibi bir yapiyla kameradan aldigin goruntuyu ajaxla kontrol ettirmek daha kolay olmaz mi?

Toplam Hit: 1040 Toplam Mesaj: 2