ভায়োলা-জোনসের মুখ সনাক্তকরণের দাবি 180 ক বৈশিষ্ট্য


85

আমি ভায়োলা-জোনসের মুখ সনাক্তকরণ অ্যালগরিদমের একটি অভিযোজন বাস্তবায়ন করছি । কৌশলটি কোনও চিত্রের মধ্যে 24x24 পিক্সেলের একটি সাবফ্রেম স্থাপনের উপর নির্ভর করে এবং পরবর্তী সময়ে প্রতিটি আকারের সাথে এটির প্রতিটি অবস্থানে আয়তক্ষেত্রাকার বৈশিষ্ট্যগুলি রাখে।

এই বৈশিষ্ট্যগুলিতে দুটি, তিন বা চারটি আয়তক্ষেত্র থাকতে পারে। নিম্নলিখিত উদাহরণ উপস্থাপন করা হয়।

আয়তক্ষেত্র বৈশিষ্ট্য

তারা দাবি করে যে সম্পূর্ণ সেট 180k এর বেশি (বিভাগ 2):

ডিটেক্টরের বেস রেজোলিউশনটি 24x24 বলে দেওয়া হয়েছে, আয়তক্ষেত্রের বৈশিষ্ট্যগুলির সম্পূর্ণ সেটটি 180,000 এরও বেশি is নোট করুন যে হার ভিত্তির বিপরীতে, আয়তক্ষেত্রের বৈশিষ্ট্যগুলির সেটটি অসম্পূর্ণ।

নিম্নলিখিত বিবৃতিগুলি কাগজে স্পষ্টভাবে বলা হয়নি, সুতরাং সেগুলি আমার পক্ষ থেকে অনুমান:

  1. এখানে কেবল দুটি দ্বি-আয়তক্ষেত্র বৈশিষ্ট্য, 2 তিনটি আয়তক্ষেত্র বৈশিষ্ট্য এবং 1 চার-আয়তক্ষেত্র বৈশিষ্ট্য রয়েছে। এর পিছনে যুক্তিটি হ'ল আমরা হাইলাইট করা আয়তক্ষেত্রগুলির মধ্যে পার্থক্য পর্যবেক্ষণ করছি , বর্ণ বা আলোকসজ্জা বা এই ধরণের কোনও কিছুর স্পষ্টভাবে নয়।
  2. আমরা বৈশিষ্ট্য প্রকার A কে 1x1 পিক্সেল ব্লক হিসাবে সংজ্ঞায়িত করতে পারি না; এটি কমপক্ষে কমপক্ষে 1x2 পিক্সেল হওয়া উচিত। এছাড়াও, টাইপ ডি অবশ্যই কমপক্ষে 2x2 পিক্সেল হতে হবে এবং এই বিধিটি অন্যান্য বৈশিষ্ট্য অনুসারে ধারণ করে।
  3. মিডিল পিক্সেলটি পার্টিশন করা যায় না বলে আমরা বৈশিষ্ট্য প্রকার A কে 1x3 পিক্সেল ব্লক হিসাবে সংজ্ঞায়িত করতে পারি না এবং এটিকে নিজের থেকে বিয়োগ করা 1x2 পিক্সেল ব্লকের অনুরূপ; এই বৈশিষ্ট্যটির প্রকারটি কেবলমাত্র প্রস্থের জন্যই সংজ্ঞায়িত। এছাড়াও, বৈশিষ্ট্য টাইপ সি এর প্রস্থ অবশ্যই 3 দ্বারা বিভাজ্য হতে হবে এবং এই বিধিটি অন্যান্য বৈশিষ্ট্য অনুসারে ধারণ করে।
  4. প্রস্থ এবং / অথবা উচ্চতার সাথে 0 এর বৈশিষ্ট্যটি সংজ্ঞায়িত করতে পারি না Therefore সুতরাং, আমরা বৈশিষ্ট্যটির আকার x এবং y থেকে 24 মাইনাসে পুনরাবৃত্তি করি ।

এই অনুমানের উপর ভিত্তি করে, আমি সম্পূর্ণ সেটটি গণনা করেছি:

const int frameSize = 24;
const int features = 5;
// All five feature types:
const int feature[features][2] = {{2,1}, {1,2}, {3,1}, {1,3}, {2,2}};

int count = 0;
// Each feature:
for (int i = 0; i < features; i++) {
    int sizeX = feature[i][0];
    int sizeY = feature[i][1];
    // Each position:
    for (int x = 0; x <= frameSize-sizeX; x++) {
        for (int y = 0; y <= frameSize-sizeY; y++) {
            // Each size fitting within the frameSize:
            for (int width = sizeX; width <= frameSize-x; width+=sizeX) {
                for (int height = sizeY; height <= frameSize-y; height+=sizeY) {
                    count++;
                }
            }
        }
    }
}

ফলাফল 162,336

"180,000 এরও বেশি" ভায়োলা অ্যান্ড জোন্স যে কথা বলেছিল তার প্রায় একটাই উপায়, আমি অনুমান # 4 বাদ দিচ্ছি এবং কোডটিতে বাগগুলি প্রবর্তন করে। এর মধ্যে যথাক্রমে চারটি লাইন পরিবর্তন করা জড়িত:

for (int width = 0; width < frameSize-x; width+=sizeX)
for (int height = 0; height < frameSize-y; height+=sizeY)

ফলাফলটি তখন 180,625 । (দ্রষ্টব্য যে এটি সাবফ্র্যামের ডান এবং / অথবা নীচে স্পর্শ করা থেকে বৈশিষ্ট্যগুলিকে কার্যকরভাবে প্রতিরোধ করবে))

এখন অবশ্যই প্রশ্ন: তারা কি তাদের বাস্তবায়নে ভুল করেছে? শূন্যের উপরিভাগ সহ বৈশিষ্ট্যগুলি বিবেচনা করা কি কোনও অর্থবোধ করে? নাকি আমি এটিকে ভুল উপায়ে দেখছি?


আমি আপনার কোডটি চালানোর সময় কেন আমি গণনা করব = 114829?
নিকি

আপনার এক্স / ওয়াই লুপগুলি 1 থেকে শুরু হবে কেন? আমি ধরে নিই যে এক্স / ওয়াইটি বৈশিষ্ট্যটির আয়তক্ষেত্রের শীর্ষ বাম স্থানাঙ্ক। X / y এর পরে 0/0 এ শুরু করা উচিত নয়?
নিকি

এটি 0 বা 1 এ শুরু হয় কিনা তা বাদ দিয়ে, সমাপ্তিটি x < size# 4 অনুমানের সাথে করতে হবে: আমি চাই যে বৈশিষ্ট্যটি সাবফ্রেমের মধ্যেই থাকবে তবে কমপক্ষে কমপক্ষে 1x1 মাত্রা রয়েছে। বৈশিষ্ট্যের মাত্রা সাবফ্রেমের বাইরে প্রসারিত না হওয়া উচিত কিনা, ভাল, সম্ভবত এটি একটি অনুমানও।
পল ল্যামার্টসমা

একইভাবে, যদি আমি 0 এ x শুরু করি তবে এটি চালাতে হবে x < size - 1, সুতরাং কোনও লাভ নেই।
পল ল্যামার্টসমা

লুপের জন্য আমি এক মিলিয়ন করেছি। এটা আমার কাছে ভুল বলে মনে হচ্ছে <আকার xকে 24 থেকে 24 বামে রাখবে, 0 থেকে শুরু করলে আপনাকে 0 ... 23 দেওয়া হবে, 1 পিক্সেল প্রশস্ত মাত্রার সাথে আয়তক্ষেত্রটি কখনই ফ্রেমটি ছাড়বে না।
ব্রেটন

উত্তর:


41

কাছাকাছি তাকানোর পরে, আপনার কোডটি আমার কাছে সঠিক দেখাচ্ছে; যার ফলে আশ্চর্য হয়ে যায় যে মূল লেখকগণের বাই-ও-বাগ ছিল কিনা। আমার ধারণা, ওপেনসিভি কীভাবে এটি প্রয়োগ করে তা দেখার জন্য কারও উচিত!

তা সত্ত্বেও, এক পরামর্শ এটিকে সহজভাবে বোঝার জন্য করতে ক্রম টুসকি হয় জন্য প্রথম সব আকারের ধরে যাচ্ছে, তারপর সম্ভব অবস্থানে উপর লুপিং আকার দেওয়া দ্বারা লুপ:

#include <stdio.h>
int main()
{
    int i, x, y, sizeX, sizeY, width, height, count, c;

    /* All five shape types */
    const int features = 5;
    const int feature[][2] = {{2,1}, {1,2}, {3,1}, {1,3}, {2,2}};
    const int frameSize = 24;

    count = 0;
    /* Each shape */
    for (i = 0; i < features; i++) {
        sizeX = feature[i][0];
        sizeY = feature[i][1];
        printf("%dx%d shapes:\n", sizeX, sizeY);

        /* each size (multiples of basic shapes) */
        for (width = sizeX; width <= frameSize; width+=sizeX) {
            for (height = sizeY; height <= frameSize; height+=sizeY) {
                printf("\tsize: %dx%d => ", width, height);
                c=count;

                /* each possible position given size */
                for (x = 0; x <= frameSize-width; x++) {
                    for (y = 0; y <= frameSize-height; y++) {
                        count++;
                    }
                }
                printf("count: %d\n", count-c);
            }
        }
    }
    printf("%d\n", count);

    return 0;
}

আগের মত একই ফলাফল 162336


এটি যাচাই করার জন্য, আমি একটি 4x4 উইন্ডোয়ের কেসটি পরীক্ষা করেছি এবং ম্যানুয়ালি সমস্ত কেস পরীক্ষা করেছি (1x2 / 2x1 এবং 1x3 / 3x1 আকারগুলি কেবল 90 ডিগ্রি ঘোরানো একই গণনা করা সহজ):

2x1 shapes:
        size: 2x1 => count: 12
        size: 2x2 => count: 9
        size: 2x3 => count: 6
        size: 2x4 => count: 3
        size: 4x1 => count: 4
        size: 4x2 => count: 3
        size: 4x3 => count: 2
        size: 4x4 => count: 1
1x2 shapes:
        size: 1x2 => count: 12             +-----------------------+
        size: 1x4 => count: 4              |     |     |     |     |
        size: 2x2 => count: 9              |     |     |     |     |
        size: 2x4 => count: 3              +-----+-----+-----+-----+
        size: 3x2 => count: 6              |     |     |     |     |
        size: 3x4 => count: 2              |     |     |     |     |
        size: 4x2 => count: 3              +-----+-----+-----+-----+
        size: 4x4 => count: 1              |     |     |     |     |
3x1 shapes:                                |     |     |     |     |
        size: 3x1 => count: 8              +-----+-----+-----+-----+
        size: 3x2 => count: 6              |     |     |     |     |
        size: 3x3 => count: 4              |     |     |     |     |
        size: 3x4 => count: 2              +-----------------------+
1x3 shapes:
        size: 1x3 => count: 8                  Total Count = 136
        size: 2x3 => count: 6
        size: 3x3 => count: 4
        size: 4x3 => count: 2
2x2 shapes:
        size: 2x2 => count: 9
        size: 2x4 => count: 3
        size: 4x2 => count: 3
        size: 4x4 => count: 1

দৃv়প্রত্যয়ী। এত দৃinc়প্রত্যয়ী যে আমি নিশ্চিত যে আমরা ঠিক আছি we're আমি আমার যুক্তিতে কিছু মৌলিক ভুল করেছি কিনা তা দেখার জন্য আমি লেখকের কাছে একটি ইমেল পাঠিয়েছি। আমরা দেখব যে কোনও ব্যস্ত ব্যক্তির প্রতিক্রিয়ার জন্য সময় আছে কিনা।
পল ল্যামার্টসমা

মনে রাখবেন এই জিনিসটি কয়েক বছর ধরেই বহিঃপ্রকাশ করেছে, এবং তখন থেকেই অনেক উন্নতি হয়েছিল
আম্রো

26
মূল কাগজ যেখানে ১৮০ কে লেখা হয়েছিল, তা কম্পিউটার 2001 এবং প্যাটার্ন স্বীকৃতি সংক্রান্ত 2001 সম্মেলনের সম্মেলনের প্রক্রিয়া থেকে এসেছে। 2003 সালে স্বীকৃত এবং 2004 সালে ইন্টারন্যাশনাল জার্নাল অফ কম্পিউটার ভিশন-এ প্রকাশিত একটি সংশোধিত কাগজ, পি-তে বলা হয়েছে। 139 (বিভাগ 2 এর শেষ): "আয়তক্ষেত্রগুলির সম্পূর্ণ সেট 160,000 বিশাল"। দেখে মনে হচ্ছে আমরা ঠিক ছিলাম!
পল ল্যামার্টসমা

4
দুর্দান্ত, আপডেটের জন্য ধন্যবাদ। আগ্রহীদের জন্য, আমি আইজেসিভি'০৪ পেপারের লিঙ্কটি পেয়েছি: learn.inrialpes.fr/people/triggs/student/vj/viola-ijcv04.pdf
Amro

হ্যাঁ, এটা। 160k, 180k নয়।
পল ল্যামার্টসমা

9

সব। ভায়োলা এবং জোনসের কাগজপত্রগুলিতে এখনও কিছু বিভ্রান্তি রয়েছে।

তাদের সিভিপিআর'০১ পেপারে স্পষ্টভাবে বলা হয়েছে যে

"আরও সুনির্দিষ্টভাবে আমরা তিন ধরণের বৈশিষ্ট্য ব্যবহার করি । দুটি আয়তক্ষেত্রাকার বৈশিষ্ট্যের মান হ'ল দুটি আয়তক্ষেত্রাকার অঞ্চলের মধ্যে পিক্সেলের যোগফলের মধ্যে পার্থক্য The অঞ্চলগুলির একই আকার এবং আকার থাকে এবং অনুভূমিকভাবে বা উল্লম্বভাবে সংলগ্ন হয় (চিত্র দেখুন) 1)। তিন আয়তক্ষেত্র বৈশিষ্ট্য একটি কেন্দ্র আয়তক্ষেত্র মধ্যে সমষ্টি থেকে বিয়োগ দুটি বাহিরে আয়তক্ষেত্র মধ্যে সমষ্টি নির্ণয় করে। অবশেষে চার আয়তক্ষেত্র বৈশিষ্ট্য "।

আইজেসিভি'০৪ পেপারে ঠিক একই কথা বলা হয়েছে। সামগ্রিকভাবে 4 টি বৈশিষ্ট্য । তবে আশ্চর্যের সাথে যথেষ্ট, তারা এ বার বলেছে যে সম্পূর্ণ বৈশিষ্ট্যটি সেটটি 45396! এটি চূড়ান্ত সংস্করণ বলে মনে হচ্ছে না e এখানে আমি অনুমান করি যে সেখানে কিছু অতিরিক্ত প্রতিবন্ধকতা চালু হয়েছিল যেমন মিনি_উইথ, মিনি_ উচ্চতা, প্রস্থ / উচ্চতা অনুপাত এবং এমনকি অবস্থান।

মনে রাখবেন যে দুটি পেপারই তাঁর ওয়েবপৃষ্ঠায় ডাউনলোডযোগ্য ।


3

পুরো কাগজটি না পড়ে, আপনার উক্তিটির শব্দটি আমার দিকে তাকিয়ে আছে

ডিটেক্টরের বেস রেজোলিউশনটি 24x24 বলে দেওয়া হয়েছে, আয়তক্ষেত্রের বৈশিষ্ট্যগুলির সম্পূর্ণ সেটটি 180,000 এরও বেশি is নোট করুন যে হার ভিত্তির বিপরীতে, আয়তক্ষেত্রের বৈশিষ্ট্যগুলির সেটটি অসম্পূর্ণ।

"আয়তক্ষেত্রের বৈশিষ্ট্যগুলির সেটটি সম্পূর্ণ অসম্পূর্ণ" "অবসন্ন সেট"

এটি আমার কাছে একটি সেট আপের মতো শোনাচ্ছে, যেখানে আমি কাগজের লেখক কীভাবে অনুসন্ধানের জায়গাটিকে আরও কার্যকর সেটগুলিতে টানতে পারেন তার ব্যাখ্যা দিয়ে অনুসরণ করার প্রত্যাশা করি, উদাহরণস্বরূপ, শূন্যের সাথে আয়তক্ষেত্রের মতো তুচ্ছ ঘটনা থেকে মুক্তি পাওয়া ভূপৃষ্ঠের.

সম্পাদনা করুন: বা বিমূর্ত ইঙ্গিত হিসাবে কোনও ধরণের মেশিন লার্নিং অ্যালগরিদম ব্যবহার করে। এক্সহসিউটিভ সেটটি সমস্ত সম্ভাব্যতা বোঝায়, কেবল "যুক্তিসঙ্গত" নয়।


আমার "অতিরিক্ত অসম্পূর্ণ" এর পরে পাদটীকা অন্তর্ভুক্ত করা উচিত: "সম্পূর্ণ ভিত্তিতে ভিত্তি উপাদানগুলির মধ্যে কোনও রৈখিক নির্ভরতা নেই এবং এই ক্ষেত্রে 576 চিত্রের স্থানের মতো উপাদান রয়েছে elements 180,000 হাজার বৈশিষ্ট্যের সম্পূর্ণ সেটটি বহুগুণ বেশি- সম্পূর্ণ। " তারা স্পষ্টভাবে কোনও পৃষ্ঠহীন শ্রেণিবদ্ধকারীদের থেকে মুক্তি পাবে না, তারা নির্ধারণ করতে অ্যাডাবোস্ট ব্যবহার করে যে "এই বৈশিষ্ট্যগুলির একটি খুব অল্প সংখ্যক একটি কার্যকর শ্রেণিবদ্ধ গঠনে মিলিত হতে পারে" " ঠিক আছে, তাই শূন্য-পৃষ্ঠের বৈশিষ্ট্যগুলি অবিলম্বে বাদ দেওয়া হবে, তবে কেন সেগুলিকে প্রথমে বিবেচনা করবেন?
পল ল্যামারটসমা

ভাল এটি মতামত কারোর যুক্তি মতামত সেট থিউরি।
ব্রেটন

আমি সম্মত, সম্পূর্ণ সেট সমস্ত সম্ভাব্য বোঝায়। তবে বিবেচনা করুন যে আপনি যদি x এবং প্রস্থ <= x এর জন্য 1 থেকে 24 নেন তবে বৈশিষ্ট্যটি সাবফ্রেমের বাইরে 1 পিক্সেল বাড়িয়ে তুলবে!
পল ল্যামার্টসমা

আপনি কি নিশ্চিত যে আপনার কোডটি "এক বাই বন্ধ" বাগ দিয়ে ছাঁটাই করা হয়নি? আমার সবেমাত্র ঘনিষ্ঠভাবে নজর ছিল এবং লুপের জন্য আপনার লেখার মজার উপায় অবশ্যই আছে sure
ব্রেটন

আমার এটিকে যোগ্য করে তোলা উচিত - আমি কেবল এটি কিছুটা সময় নিয়ে ভাবলাম, এবং আপনার যদি 1 পিক্সেল লম্বা, 2 পিক্সেল লম্বা, 3 পিক্সেল লম্বা, 24 পিক্সেল লম্বা পর্যন্ত আয়তক্ষেত্র থাকে তবে আপনার 24 ধরণের আয়তক্ষেত্র রয়েছে, সবগুলি যা একটি 24 পিক্সেল উচ্চ সাবফ্রেমে ফিট করে। কি overhangs?
ব্রেটন

2

কোনও কাগজের কোনও লেখক তাদের সমস্ত অনুমান এবং অনুসন্ধানে সঠিক যে কোনও গ্যারান্টি নেই। আপনি যদি ভাবেন যে অনুমান # 4 বৈধ, তবে সেই অনুমান রাখুন এবং আপনার তত্ত্বটি চেষ্টা করে দেখুন। আপনি মূল লেখকদের চেয়ে বেশি সফল হতে পারেন।


পরীক্ষাটি দেখায় যে এটি আপাতদৃষ্টিতে ঠিক একইরকম অভিনয় করে। আমি বিশ্বাস করি যে অ্যাডাবোস্ট কেবল প্রথম চক্রের অতিরিক্ত অতিরিক্ত শূন্য-পৃষ্ঠ বৈশিষ্ট্যগুলি ফেলে দেয়, তবে আমি আসলে এটিকে দেখিনি।
পল ল্যামার্টসমা

কম্পিউটার ভিশনে ভায়োলা এবং জোন্স খুব বড় নাম। আসলে, এই নির্দিষ্ট কাগজটি চূড়ান্ত হিসাবে বিবেচিত হয়। প্রত্যেকে ভুল করে তবে এই নির্দিষ্ট অ্যালগরিদমটি খুব ভালভাবে কাজ করার জন্য প্রমাণিত হয়েছে।
ডিমা

4
অবশ্যই, এবং আমি তাদের পদ্ধতিতে মোটেই সন্দেহ করি না। এটি দক্ষ এবং খুব ভাল কাজ করে! তত্ত্বটি দুর্দান্ত, তবে আমি বিশ্বাস করি যে তারা ভুল করে তাদের সনাক্তকারীকে এক পিক্সেল সংক্ষিপ্ত আকারে আঁকিয়েছে এবং অকারণে শূন্য-পৃষ্ঠের বৈশিষ্ট্যগুলি অন্তর্ভুক্ত করেছে। যদি তা না হয় তবে আমি আপনাকে 180k বৈশিষ্ট্যগুলি প্রদর্শন করার জন্য চ্যালেঞ্জ জানাব!
পল ল্যামারটসমা

আসল কথা হ'ল সবাই মানুষ। সবাই ভুল করে. যখন কোনও বড় নাম ভুল করে, তারা প্রায়শই প্রজন্মের জন্য লুকিয়ে থাকে কারণ মানুষ প্রাপ্ত বুদ্ধি নিয়ে প্রশ্ন করতে ভয় পান। তবে সত্য বিজ্ঞান, বৈজ্ঞানিক পদ্ধতি অনুসরণ করে এবং কারও নাম উপাসনা করে না, কারও উপাসনা করে না। যদি এটি বিজ্ঞান হয় তবে নিখুঁত নশ্বররা চেষ্টা করতে পারে, এটি কীভাবে কাজ করে তা বুঝতে এবং এটি তাদের পরিস্থিতিতে খাপ খাইয়ে নিতে পারে।
মাইকেল ডিলন

আমরা দেখব; আমি লেখকের কাছে একটি ইমেল প্রেরণ করেছি।
পল ল্যামার্টসমা

1

বেশ ভাল পর্যবেক্ষণ, তবে তারা স্পষ্টতই 24x24 ফ্রেমকে শূন্য-প্যাড, বা "ওভারফ্লো" করতে পারে এবং প্রথম পিক্সেলগুলি যখন ঘূর্ণায়মান শিফটে যেমন বাইরে যায় তখন ব্যবহার করতে শুরু করে বা ব্রেটান বলেছিল যে তারা কিছু বৈশিষ্ট্যগুলিকে "তুচ্ছ বৈশিষ্ট্য" হিসাবে বিবেচনা করতে পারে এবং তারপরে এডা বুস্ট দিয়ে এগুলি বাতিল করুন।

তদতিরিক্ত, আমি আপনার কোডের পাইথন এবং মতলব সংস্করণগুলি লিখেছি যাতে আমি কোডটি নিজেই পরীক্ষা করতে পারি (আমার জন্য ডিবাগ করা এবং অনুসরণ করা সহজ) এবং তাই যদি কেউ তাদের কোনও সময়ের জন্য দরকারী মনে হয় তবে আমি এগুলি এখানে পোস্ট করি।

পাইথন:

frameSize = 24;
features = 5;
# All five feature types:
feature = [[2,1], [1,2], [3,1], [1,3], [2,2]]

count = 0;
# Each feature:
for i in range(features):
    sizeX = feature[i][0]
    sizeY = feature[i][1]
    # Each position:
    for x in range(frameSize-sizeX+1):
        for y in range(frameSize-sizeY+1):
            # Each size fitting within the frameSize:
            for width in range(sizeX,frameSize-x+1,sizeX):
                for height in range(sizeY,frameSize-y+1,sizeY):
                    count=count+1
print (count)

মতলব:

frameSize = 24;
features = 5;
% All five feature types:
feature = [[2,1]; [1,2]; [3,1]; [1,3]; [2,2]];

count = 0;
% Each feature:
for ii = 1:features
    sizeX = feature(ii,1);
    sizeY = feature(ii,2);
    % Each position:
    for x = 0:frameSize-sizeX
        for y = 0:frameSize-sizeY
            % Each size fitting within the frameSize:
            for width = sizeX:sizeX:frameSize-x
                for height = sizeY:sizeY:frameSize-y
                    count=count+1;
                end
            end
        end
    end
end

display(count)

আপনি কেন 5 টি বৈশিষ্ট্য ব্যবহার করেন, মূল প্রশ্নটিতে কেবল 4 জন পোস্ট করা হয়। তবে যাইহোক পাইথন সংস্করণের জন্য ধন্যবাদ।
কাস্পারভ 9 2

0

তাদের মূল 2001 এর গবেষণাপত্রে কেবলমাত্র তিন ধরণের বৈশিষ্ট্য ব্যবহার করা হয়েছে:

আমরা তিন ধরণের বৈশিষ্ট্য ব্যবহার করি

এছাড়াও

অঞ্চলগুলির একই আকার এবং আকার রয়েছে

যেহেতু প্রতিটি ধরণের দুটি অভিমুখ রয়েছে তাই এটি ধরে নেওয়া যুক্তিযুক্ত যে তারা মোট 6 টি বৈশিষ্ট্য ব্যবহার করে (কমপক্ষে বৈশিষ্ট্যগুলির সংখ্যার গণনার জন্য): 2 দুটি দ্বি-আয়তক্ষেত্রের বৈশিষ্ট্য, 2 তিনটি আয়তক্ষেত্র বৈশিষ্ট্য এবং 2 চারটি আয়তক্ষেত্রের বৈশিষ্ট্য। এই অনুমানের সাথে প্রকৃতপক্ষে 180,000 এরও বেশি বৈশিষ্ট্য রয়েছে:

feature_types = [(1,2), (2,1), (1,3), (3,1), (2,2), (2,2)]
window_size = (24,24)

total_features = 0
for f_type in feature_types:
    for f_height in range(f_type[0], window_size[0] + 1, f_type[0]):
        for f_width in range(f_type[1], window_size[1] + 1, f_type[1]):
            total_features += (window_size[0] - f_height + 1) * (window_size[1] - f_width + 1)
            
print(total_features)
# 183072

আপনি যদি একটি চার-আয়তক্ষেত্রের ধরণের বৈশিষ্ট্যগুলি ফেলে রাখেন (যা তাদের পরবর্তী প্রকাশনার ক্ষেত্রে মনে হয়), তবে বৈশিষ্ট্যগুলির মোট সংখ্যা 162,336।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.