হস্তাক্ষর অঙ্কগুলি সনাক্ত করুন


22

আপনার কাজ হস্তাক্ষর অঙ্কযুক্ত একটি চিত্র পড়া, অঙ্কটি সনাক্ত করা এবং মুদ্রণ করা।

ইনপুট: 0 থেকে 255 পর্যন্ত 784 প্লেইন-টেক্সট সংখ্যার ক্রম হিসাবে প্রদত্ত একটি 28 * 28 গ্রেস্কেল চিত্র, স্থান দ্বারা পৃথক করা। 0 এর অর্থ সাদা এবং 255 এর অর্থ কালো।

আউটপুট: স্বীকৃত অঙ্ক।

স্কোরিং: আমি আপনার প্রোগ্রামটি এমএনআইএসটি ডাটাবেস প্রশিক্ষণ সেট (এএসসিআইআই ফর্মে রূপান্তরিত) থেকে 1000 টি চিত্র দিয়ে পরীক্ষা করব । আমি ইমেজগুলি ইতিমধ্যে নির্বাচন করেছি (এলোমেলোভাবে), তবে তালিকাটি প্রকাশ করব না। পরীক্ষাটি 1 ঘন্টার মধ্যে শেষ করতে হবে, এবং তা নির্ধারণ করবে n- সঠিক উত্তরের সংখ্যা।
nআপনার প্রোগ্রামটি যোগ্যতার জন্য অবশ্যই কমপক্ষে 200 হতে হবে। যদি আপনার উত্স কোডের আকার হয় sতবে আপনার স্কোর হিসাবে গণনা করা হবে s * (1200 - n) / 1000। সর্বনিম্ন স্কোর জয়।

নিয়মাবলী:

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

উদাহরণ ইনপুট:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 18 18 18 126 136 175 26 166 255 247 127 0 0 0 0 0 0 0 0 0 0 0 0 30 36 94 154 170 253 253 253 253 253 225 172 253 242 195 64 0 0 0 0 0 0 0 0 0 0 0 49 238 253 253 253 253 253 253 253 253 251 93 82 82 56 39 0 0 0 0 0 0 0 0 0 0 0 0 18 219 253 253 253 253 253 198 182 247 241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 156 107 253 253 205 11 0 43 154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 1 154 253 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 253 190 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 190 253 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35 241 225 160 108 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 81 240 253 253 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 45 186 253 253 150 27 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 93 252 253 187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 253 249 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 46 130 183 253 253 207 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 39 148 229 253 253 253 250 182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 114 221 253 253 253 253 201 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23 66 213 253 253 253 253 198 81 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 171 219 253 253 253 253 195 80 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 55 172 226 253 253 253 253 244 133 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 253 253 253 212 135 132 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

যাইহোক, আপনি যদি এই লাইনটিকে ইনপুটটিতে প্রিপেন্ড করেন:

P2 28 28 255

আপনি উল্টানো / উপেক্ষিত রঙের সাথে পিজিএম ফর্ম্যাটে একটি বৈধ চিত্র ফাইল পাবেন।

এটি সঠিক রঙগুলির মতো দেখতে দেখতে: অঙ্ক

উদাহরণ আউটপুট:

5

স্ট্যান্ডিং:

No.| Name         | Language   | Alg | Ver | n   | s   |  Score
----------------------------------------------------------------
 1 | Peter Taylor | GolfScript | 6D  | v2  | 567 | 101 |  63.933
 2 | Peter Taylor | GolfScript | 3x3 | v1  | 414 | 207 | 162.702

সম্পর্কিত, তবে একেবারে একই নয় (চ্যালেঞ্জ নয়, তবে ল্যাটেক্স কোডগুলি সন্ধান করার জন্য খুব দরকারী): ডিটেক্সাইফাই.কায়ার্ল্যাবস.আর / ক্লাসিফ.হ.টি.এম.এল । এটি সংখ্যাগুলিও স্বীকৃতি দেয়।
জাস্টিন

1
আমরা কি নিরাপদে ধরে নিতে পারি যে আমাদের কেবল কালো পিক্সেল বিবেচনা করা উচিত? > 127 পিক্সেল? আমরা কী ধরে নিতে পারি?
জাস্টিন

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

3
@ অ্যাডিটসু হ্যাঁ, যে কেউ এটি খারাপভাবে করতে পারে। তবে আপনি এটি খারাপভাবে করার জন্য বলছেন না, আপনি চান প্রতিযোগিতায় কেউ "জিততে" চান, যেখানে চরিত্রের গণনা পরিমাপ করা হয়। আমি মনে করি শখের ধাঁধা ধাঁধা সমাধানকারীদের জন্য সমস্যাটি কিছুটা বাদ দেওয়া আরও বাস্তববাদী। ইনপুট সীমাবদ্ধ করা এটিকে যুক্তিসঙ্গত করার পক্ষে একটি ভাল সূচনা বলে মনে হচ্ছে। আমি ইনপুটটিতে প্রাক-পাসের পরামর্শ দিচ্ছি এটি কালো এবং সাদা বলে।
ডাঃ রেবমু

2
@ ডাঃ রেবেমু এবং অন্য যে কেউ কালো এবং সাদা ইনপুট চান: 128 এর মতো একটি থ্রোসোল্ড ব্যবহার করে ইনপুটটি রূপান্তর করতে নির্দ্বিধায় হন। আপনি অন্যান্য থ্রেশহোল্ডগুলিও চেষ্টা করতে পারেন, তারা আরও ভাল ফলাফল দিতে পারে।
অ্যাডিটসু

উত্তর:


6

গল্ফস্ক্রিপ্ট 6 ডি (ভি 2: আনুমানিক স্কোর 101 * 0.63 ~ = 64)

এটি আমার আগের গল্ফস্ক্রিপ্ট উত্তরের একটি খুব আলাদা পদ্ধতির, সুতরাং এটি অন্য উত্তরটি সম্পাদনা করার এবং এই ভি 2 তৈরির চেয়ে v1 এ পৃথক উত্তর হিসাবে পোস্ট করা আরও বোধগম্য।

~]:B;569'!EM,R.==|%NL2+^=1'{{32-}%95{base}:^~\^}:&~2/{~B=<}%2^10'#]8Y,;KiZfnnRsDzPsvQ!%4C&..z,g,$m'&=

Ungolfed

~]:B;
[30 183 21 378 31 381 7 461 113 543 15 568]
2/{~B=<}%2base
7060456576664262556515119565486100005262700292623582181233639882 10base
=

ব্যাখ্যা

কাঁচা সমস্যা হ'ল 784-মাত্রিক স্থানের পয়েন্টগুলির শ্রেণিবিন্যাস। একটি স্ট্যান্ডার্ড পদ্ধতির মাত্রা হ্রাস: মাত্রাগুলির একটি ছোট উপসেট চিহ্নিত করা যা শ্রেণিবদ্ধকরণের জন্য পর্যাপ্ত পৃথক শক্তি সরবরাহ করে। আশাব্যঞ্জক লাগছিল 18 জোড়া (মাত্রা, প্রান্তিকের পরিসীমা) সনাক্ত করার জন্য আমি প্রতিটি মাত্রা এবং প্রতিটি সম্ভাব্য প্রান্তিক মূল্যায়ন করেছি। তারপরে আমি প্রতিটি প্রান্তিকের রেঞ্জের কেন্দ্রটি বেছে নিয়েছি এবং 18 টি জোড়ার 6-উপাদান সাবসেটগুলি মূল্যায়ন করেছি। অবশেষে আমি সেরা 6-ডি প্রক্ষেপণের প্রতিটি মাত্রার জন্য প্রান্তিকতাটি অনুকূলিত করেছিলাম, এর যথার্থতা 56.3% থেকে 56.6% তে উন্নীত করেছি।

যেহেতু অভিক্ষেপটি 6 টি মাত্রায় রয়েছে এবং প্রতিটি মাত্রার জন্য আমি একটি সাধারণ প্রান্তিকতা প্রয়োগ করি, চূড়ান্ত অনুসন্ধান সারণীতে কেবলমাত্র 64 টি উপাদান প্রয়োজন needs এটি বিশেষভাবে সংকোচযোগ্য বলে মনে হয় না, তাই মূল গল্ফিং হ'ল উভয় লক টেবিলকে (বেসিক এবং প্রান্তিকের তালিকা; এবং অর্ধস্পেস ভেক্টরটিকে অঙ্কের মানচিত্রে) রূপান্তর এবং বেস-রূপান্তর কোডটি ভাগ করে নেওয়া।


7
আপনি আমাকে "784-মাত্রিক স্থান" এ হারিয়েছেন ;-)
ডিজিটাল ট্রমা

আমি ভয় করছি যে কোথাও কোনও ভুল হয়েছে, আমি কেবলমাত্র 37 টি সঠিক উত্তর পাচ্ছি। এছাড়াও, আপনি জিনিসগুলি কিছুটা দ্বিধাগ্রস্থ করছেন, আপনি কি দয়া করে (1) এবং (2) (যেমন আমি করেছিলেন) বা আপনার শিরোনামগুলির অনুরূপ কিছু যুক্ত করতে পারেন?
অ্যাডিটসু

@ অ্যাডিটসু, সাধারণ যুক্তি ত্রুটি। এখন স্থির।
পিটার টেলর

সুতরাং মূলত আপনি 6 "প্রাসঙ্গিক" পিক্সেল, প্রতিটি পৃথক থ্রেশহোল্ড সহ 6 টি বিট গ্রহণ করছেন?
অদিতসু

@ আদিতসু, ঠিক
পিটার টেলর

5

গল্ফস্ক্রিপ্ট 3x3 (ভি 1: আনুমানিক স্কোর 207 * 0.8 ~ = 166)

~]28/10:?/{zip?/{[]*0-!!}/}%2{base}:^~'"yN(YZ5B 7k{&w,M`f>wMb>}F2A#.{E6T9kNP_s 3Q?V`;Z\'C-z*kA5M@?l=^3ASH/@*@HeI@A<^)YN_bDI^hgD>jI"OUWiGct%7/U($*;h*<"r@xdTz6x~,/M:gT|\\:#cII8[lBr<%0r&y4'{32-}%95^?^2/{))*~}%=

বা সংক্ষিপ্ত বিবরণে,

~]28/10:?/{zip?/{[]*0-!!}/}%2{base}:^~'MAGIC STRING'{32-}%95^?^2/{))*~}%=

ব্যাখ্যা

উচ্চ স্তরে আমার পদ্ধতিটি হ'ল:

  1. পিক্সেলগুলি প্রান্তিক করে: পিক্সেল উপরে থাকলে t1সেট করে দিন 1; অন্যথায় 0
  2. পিক্সেলগুলি গ্রুপ করুন। প্রথমদিকে আমি 28x28 গ্রিডটিকে 4x4 গ্রিডে ভেঙে ফেলেছি (প্রতিটি সাবগ্রিড 7x7 পিক্সেলযুক্ত); তবে এটি একটি 3x3 গ্রিডে ভাঙ্গা (সাবগ্রিডগুলি 10x10, 10x8, বা 8x8 পিক্সেল হওয়ায়) সন্ধানের টেবিলের আকারে ব্যাপক হ্রাস দেয় যখন নির্ভুলতার হার প্রায় 56% থেকে প্রায় 40% এ নামিয়ে দেয়।
  3. প্রতিটি গ্রুপের পিক্সেলগুলি যোগ করুন এবং আবার থ্রেশোল্ড: সেট পিক্সেলের সংখ্যা যদি উপরে থাকে t2তবে গ্রুপটি স্কোর করুন 1; অন্যথায় হিসাবে 0
  4. গ্রুপ স্কোর ভেক্টর দ্বারা একটি টেবিল সন্ধান করুন। (টেবিল রান দৈর্ঘ্য এনকোডিং এবং স্ট্যান্ডার্ড বেস-রূপান্তর কৌতুক ব্যবহার সংকুচিত আছে। বেশিরভাগ পছন্দ t1এবং t250% এবং সারণির 63% মধ্যে ছুটি "পরোয়া করি না" মূল্যবোধ, যা বৃদ্ধি সংলগ্ন মান সঙ্গে মিলিত হতে পারে রান দৈর্ঘ্য; আমার ভি 1 টেবিলের গড় রান দৈর্ঘ্য 3.6)।

দেখা যাচ্ছে যে সেটিংটি t1=t2=0সর্বোত্তম নয় , সঠিকতার t1এবং সর্বোত্তম মানের t2দিক থেকে দূরে নয়; টেবিল সংকোচনের দিক থেকে বেশ ভাল; এবং আমাকে দুটি চৌম্বকীয় ক্রিয়াকলাপ একত্রিত করার অনুমতি দেয় []*0-!!(2D অ্যারে 1D তে সমতল করুন; 0গুলি সরান ; এটি খালি কিনা তা পরীক্ষা করুন)।

অনুসন্ধানের টেবিলটি গ্রুপ স্কোরের প্রদত্ত ভেক্টরের পক্ষে সর্বাধিক সম্ভাব্য প্রার্থীকে দেয়। টেবিলের এন্ট্রিগুলি চিহ্নিত করে স্কোরের উন্নতি করা সম্ভব হতে পারে যা সারণীর উন্নত সংকোচনের পরিমাণ হ্রাসের যথাযথতার চেয়ে বেশি হয়ে যায়।


আশ্চর্যজনক, আমি একই ধারণা পেয়েছিলাম তবে এটি এত ভালভাবে সংকোচিত হতে পারে তা কল্পনাও করিনি। এখন আমি ভাবছি সঠিকতার উপর আমার আরও বেশি জোর দেওয়া দরকার: p তবে আমি এটি পরিবর্তন করার পরিকল্পনা করি না।
অদিতসু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.