前の記事はこちら Rescue maze 昨年と同じロボット
昨日の続きです。
we have recently received several questions regarding competing using robots from past years competitions. We believe this is information many of you would be interested in, so we are sharing the questions and our answers here with everyone.
最近、過去の競技会でのロボットを使用した競技に関する質問をいくつか受け取りました。これは多くの方々が興味を持つ情報だと考えられるため、私たちはここで質問と回答を皆さんと共有します。
Q: According to the rules, the use of the same robot as last year in the current competition is allowed only with the presence of all previous members. Now, If a previous year’s title team uses a robot that competed last year with new members. Question: How many of the members of last year’s team should be at least members of the New Year’s team so that there is no need to change the robot? Note that the maximum number of a team is 5 members.
Q:ルールによれば、前年と同じロボットを現在の競技会で使用することは、以前のすべてのメンバーが存在する場合にのみ許可されます。今、前年の優勝チームが、新しいメンバーを加えて昨年競技に参加したロボットを使用した場合、新年のチームの少なくとも何人のメンバーが前年のチームのメンバーである必要がありますか?なお、チームの最大人数は5人です。
まず最初の文が疑問です。「ルールでは、メンバー全員が昨年と同じであれば、昨年のロボットを使える」・・・そんなルールどこにもないけど!?
で、例えば、昨年の優勝チームが昨年のロボットをそのまま使用するためには、昨年のチームメンバーが何人残っていれば認められますか? という質問です。
A: The robot is supposed to be the work of the students. If a team member that did significant part of the robot’s hardware is no longer part of the team, the robot itself is no longer the work of the current team members. I would say, the same is relevant for the software as well: If a team is using an algorithm that was programmed by a person who is no longer part of the team, the code is no longer work of the current team members. With these comments, I would say there is no definitive answer to your question about the number of team members that has to be changed, but rather the contribution that team members that left had. In conclusion, I’ll repeat myself, both robot and the code has to be work of the students that are the current team members.
A: ロボットはチームメンバーの成果物である必要があります。もし、ロボットのハードウェアの重要な部分を担当していたチームメンバーがもはやチームの一員ではない場合、そのロボット自体は現在のチームメンバーの成果物ではなくなります。同様に、ソフトウェアについても同じことが当てはまります:もしチームが、以前のチームメンバーによってプログラムされたアルゴリズムを使用している場合、そのコードは現在のチームメンバーの作業ではなくなります。これらのコメントから、あなたの質問に対する明確な答えはないと言えます。代わりに、離れたチームメンバーがした貢献が重要です。結論として、再度言及しますが、ロボットとコードの両方が、現在のチームメンバーの作業である必要があります。
明確な答えは無いようです。 ただ、抜けたメンバーが担当していたところは、そのまま使ってはダメということです。(だって、それは、現在のメンバーの成果物ではないから)
ロボットは、現状のメンバーだけで作成したものの集合体であるべきです。(ハードもソフトも)と言う回答です。(なんか当たり前ですね)
Q: Suppose a team wants to change its last year’s robot, at what levels (mechanics, electronics, programming and image processing codes) and what percentage of changes should be applied so that robot can be considered as a new robot.
Q: チームが昨年のロボットを変更したいとします。そのロボットを新しいロボットと見なすためには、どのレベル (機械、電子機器、プログラミング、画像処理コード) と変更の割合を適用する必要があります。
次の質問は、昨年のロボットをどれくらい変更すれば、(昨年のロボットはとは)別のロボットと認められますか? という質問です。
A: Difficult question. But the answer is the same as previous point. Any 3D sketches, hardware solutions, PCB designs and algorithms programmed by previous team members should NOT be used.
A: 難しい質問ですね。 しかし、答えは前のポイントと同じです。 以前のチーム メンバーがプログラムした 3D スケッチ、ハードウェア ソリューション、PCB 設計、アルゴリズムは使用しないでください。
現状のメンバーが作ったものだけで構成されればOKのようです。(逆に、抜けたメンバーが担当したものが、そのまま残っていてはダメということ)
Q: Is it allowed to use ready-made programming codes available on the Internet for search the field and the image processing? Or should the codes be entirely the result of team member and based on algorithms designed by students?
Q: フィールドの検索や画像処理に、インターネット上で入手可能な既製のプログラミング コードを使用することはできますか? それとも、コードは完全にチームメンバーの結果であり、学生が設計したアルゴリズムに基づいたものでなければなりませんか?
Q: フィールドの検索や画像処理に、インターネット上で入手可能な既製のプログラミング コードを使用することはできますか? それとも、コードは完全にチームメンバーの結果であり、学生が設計したアルゴリズムに基づいたものでなければなりませんか?
さて、今度はネットにあるアルゴリズムやライブラリを利用して良いか・・・という質問です。
回答が長いです。
A: I would refer to rule 3.2.4 “Teams are not permitted to use commercially produced robot kits or sensor components specifically designed or marketed to complete any single primary task of RoboCupJunior Rescue. Robots that do not comply will face immediate disqualification from the tournament. If there is any doubt, teams should consult the RoboCupJunior Rescue Committee before the competition.” With the evolution of machine learning algorithms, I believe it becomes relevant for the software part as well. Therefore, any e.g. neural networks created specifically for letter recognition are NOT allowed. However, existing architectures are okay to use as long as teams provide proof that they performed training of themselves. This proof should be presented in their TDP and Engineering Journal and should be
1. a dataset used to train the CNN, and the validation dataset
2. training data (graphs, tables) from each training epoch
3. validation data (same as 2. but on validation dataset images)
The team should, obviously, also provide the code for training and understand the entire NN training process. In a case of standard (no-machine learning) image processing algorithms, we allow usage of most python (or other programming language equivalents) library methods, such as opencv (blob detector method for example), as long as there is no machine learning involved. To summarize, algorithms have to be designed by students, but a use of “help” methods is allowed. If the method only makes the solution of a sub-problem easier (such as blob detector would) and doesn’t require machine learning, it is okay to use. If you have a specific software, you can always refer to the forum with the question if it would be allowed, to be sure.
1. a dataset used to train the CNN, and the validation dataset
2. training data (graphs, tables) from each training epoch
3. validation data (same as 2. but on validation dataset images)
The team should, obviously, also provide the code for training and understand the entire NN training process. In a case of standard (no-machine learning) image processing algorithms, we allow usage of most python (or other programming language equivalents) library methods, such as opencv (blob detector method for example), as long as there is no machine learning involved. To summarize, algorithms have to be designed by students, but a use of “help” methods is allowed. If the method only makes the solution of a sub-problem easier (such as blob detector would) and doesn’t require machine learning, it is okay to use. If you have a specific software, you can always refer to the forum with the question if it would be allowed, to be sure.
A: ルール 3.2.4 を参照します。「チームは、ロボカップジュニア レスキューの単一の主要なタスクを完了するために特別に設計または販売されている市販のロボット キットまたはセンサー コンポーネントを使用することは許可されません。」 従わないロボットはトーナメントから即失格となります。 疑問がある場合、チームは競技前にロボカップジュニア救助委員会に相談する必要があります。」 機械学習アルゴリズムの進化に伴い、ソフトウェア部分にもそれが関係してくると思います。 したがって、たとえば、 文字認識専用に作成されたニューラル ネットワークは許可されません。 ただし、チームが自分たちでトレーニングを行ったという証拠を提供する限り、既存のアーキテクチャを使用しても問題ありません。 この証拠は、TDP およびエンジニアリング ジャーナルに発表されるべきであり、
1. CNN のトレーニングに使用されるデータセットと検証データセット
2. 各トレーニング エポックからのトレーニング データ (グラフ、表)
3. 検証データ (2. と同じですが、検証データセット画像に関するもの)
当然のことながら、チームはトレーニング用のコードも提供し、NN トレーニング プロセス全体を理解する必要があります。標準的な(機械学習を使用しない)画像処理アルゴリズムの場合、opencv(blob検出器など)などのほとんどのPython(または他のプログラミング言語の同等のもの)ライブラリメソッドの使用を許可しますが、機械学習は含まれていないことを前提とします。
1. CNN のトレーニングに使用されるデータセットと検証データセット
2. 各トレーニング エポックからのトレーニング データ (グラフ、表)
3. 検証データ (2. と同じですが、検証データセット画像に関するもの)
当然のことながら、チームはトレーニング用のコードも提供し、NN トレーニング プロセス全体を理解する必要があります。標準的な(機械学習を使用しない)画像処理アルゴリズムの場合、opencv(blob検出器など)などのほとんどのPython(または他のプログラミング言語の同等のもの)ライブラリメソッドの使用を許可しますが、機械学習は含まれていないことを前提とします。
要約すると、アルゴリズムは学生が設計する必要がありますが、「ヘルプ」メソッドの使用は許可されています。 この方法が部分問題の解決を容易にするだけであり (ブロブ検出器など)、機械学習を必要としない場合は、使用しても問題ありません。 特定のソフトウェアをお持ちの場合は、いつでもフォーラムを参照して、それが許可されるかどうかを確認してください。
この部分が、最近の流行りのAIの利用についての説明になっていると思います。(特に Rescue Maze で使用する文字認識の部分)
(私は詳しくないので、間違っているかもしれませんが・・・)
AI(文字を学習させるライブラリ)を使用するのは良いようです。 ただ、学習は自分達で実施し、その(学習させた)結果のデータセットを自分達で作成したものであれば、利用できます。
(逆に、既に学習済の既存のデータセットを使うことはダメ)
で・・・学習させた仕組みを使うのであれば、証跡を提示しなさい、ということです。(面倒な時代ですなぁ)
ところで、ここに書かれているルール3.2.4は Rescue Maze のルールですね。 Rescue Line だと該当するルールは3.2.2 です。
この投稿に対して、質問がありました。
There seems to be a lack of a definition of “primary task” on rule 3.2.4.
What exactly is defined as a primary task? If a primary task is to follow a line to complete the maze, does that disqualify any commercial line followers? If a primary task is to detect colored victims on the walls does that disqualify any commercial heat sensors and will we have to create our own?
ルール3.2.4には「主要なタスク」の定義が不足しているようです。
「主要なタスク」とは具体的に何を指しますか?もし主要なタスクが迷路を完了するために線に従うことである場合、商用のラインフォロワーはすべて不適格になりますか?もし主要なタスクが壁にある色付きの被災者を検出することである場合、商用の熱センサーはすべて不適格になり、自分たちで作成する必要がありますか?
ルール3.2.4に書かれている「主要なタスク」って、いったい何を示しているのですか? 黒線をたどるための商用のラインセンサーは使用できないの? (Rescue maze では使わなくなったけど)熱の被災者を検知するための熱,センサーは使用できないの? と言う質問です。
この回答が長い・・・
Correct, commercial line followers are NOT allowed. Heated victims are no longer part of the Rescue Maze, but I will elaborate on that example: commercial heat sensors that return only the temperature value are okay to use. This is because it is up to student to, after receiving this value, determine whether it is warm enough, e.g. through previous calibration of ambient temperature, or a sudden change to previous measurement. Similarly, when using a say, camera, to detect colored victims, the numerical values recorded by the camera do not solve this subtask directly. Students are still required to to detect groupings of pixels with similar color and determine which color it is. However, cameras with premade software (e.g. HuskyLens, PixyCam) return objects of defined color (or sometimes even shape in case of letters) as their output, rather than raw data, which directly solves the subtask of victim detection. Use of this software is, for mentioned reasons, forbidden.
商用のラインフォロワーは許可されていません。加熱された被災者はRescue Mazeの一部ではなくなりましたが、この例を詳しく説明します:単に温度値を返す商用の熱センサーは使用できます。これは、この値を受け取った後、チームメンバーがその温度が十分に高いかどうかを決定することが、例えば周囲の温度の事前のキャリブレーションや、前回の測定値への突然の変化などを通じて、彼ら自身の手段で行う必要があるためです。同様に、カメラを使用して色の被災者を検出する場合、カメラによって記録された数値値は、このサブタスクを直接解決しません。チームメンバーは、依然として類似した色のピクセルのグループを検出し、それがどの色であるかを判断する必要があります。ただし、HuskyLens や PixyCam などの、定義された色(または場合によっては文字の形)のオブジェクトを出力として返す組み込みソフトウェアを使用すると、サブタスクの被災者検出が直接解決されるため、このソフトウェアの使用は禁止されています。
商用のラインフォロワーは許可されていません。加熱された被災者はRescue Mazeの一部ではなくなりましたが、この例を詳しく説明します:単に温度値を返す商用の熱センサーは使用できます。これは、この値を受け取った後、チームメンバーがその温度が十分に高いかどうかを決定することが、例えば周囲の温度の事前のキャリブレーションや、前回の測定値への突然の変化などを通じて、彼ら自身の手段で行う必要があるためです。同様に、カメラを使用して色の被災者を検出する場合、カメラによって記録された数値値は、このサブタスクを直接解決しません。チームメンバーは、依然として類似した色のピクセルのグループを検出し、それがどの色であるかを判断する必要があります。ただし、HuskyLens や PixyCam などの、定義された色(または場合によっては文字の形)のオブジェクトを出力として返す組み込みソフトウェアを使用すると、サブタスクの被災者検出が直接解決されるため、このソフトウェアの使用は禁止されています。
カメラの特殊な機能(ラインフォローやオブジェクト検出など)は使用禁止です。
To your question what is defined as a primary task, basically anything that requires special attention when designing your program. The reason of use of the word “primary” is because we allow public libraries of non-machine learning algorithms that make solving of some of the tasks easier. Popular example of this is find_blob function from open-cv library, which finds groupings of pixels in an image based on a input threshold, since this threshold is a value students have to, same as in heated victim example, find a way to figure out on their own. Additionally, this method doesn’t solve the entire problem, just a small part of it. It is still required to distinguish which “blob” can be a victim, what is its color, and ultimately if it really is a victim and which one.
質問の「主要なタスク」とは、基本的にはプログラムの設計時に特別な注意が必要なものを指します。 「主要な」の単語を使用する理由は、いくつかのタスクの解決を容易にする非機械学習アルゴリズムの公開ライブラリを許可しているからです。これには、open-cvライブラリのfind_blob関数などの人気のある例があります。この関数は、入力しきい値に基づいて画像内のピクセルのグループを見つけます。このしきい値は、加熱された被災者の例と同様に、チームメンバーが自分で見つける必要がある値です。さらに、この方法は問題全体を解決するのではなく、その一部を解決するだけです。依然として、どの「blob」が被災者であり、その色は何であり、最終的にそれが本当に被災者であるかどうか、そしてどれであるかを区別する必要があります。
説明が長くて、良く分かりませんが・・・要は、自分達で判断をしなくて良い(ような便利な機能をもっている)ものは使っちゃダメ。ということのようです。