個人での特許出願のために必要なプロセス(2) - 提案書作成編
前回の続き
個人での特許出願のために必要なプロセス(1) - 識別番号取得編 - キノコの自省録
1. 特許庁のWebページから、電子出願サポートソフトをダウンロードしてインストールする 2. 電子証明書をゲットする 3. 申請人登録を行い、識別番号を取得する 4. 提案書ひな形ファイルをダウンロードして、ガイドラインに沿って提案書を作成する 5. 出願費用を支払って、提案書に納付番号を記載する 6. インターネット出願アプリで出願を行う 6-a. 記載不備がある場合は修正して再度出願
前回は1~3まで。続いて4.提案書の作成です。
業務で特許提案したことがある人でも、全て自分で書いて出願する人は稀でしょう。おそらく、企業の決めた最低限の項目を記入して、体裁は知財部や弁理士が整えて出願すると思います。会社によっては出願者はアイデアシートだけ記入すればOKというところもありますが、それって知財部は体裁整えるじゃ済まないレベルで負担ですし、なんかもったいない気がします。
なお、請求項や実施例の書き方については触れません。この辺は私が敢えて書く必要もないでしょう。
ひな形をダウンロードする
特許庁のページにひな形が置いてありますので、まずそれをダウンロードしましょう。
Wordかhtmlか、どちらかで書くことになります。私はhtmlで書きました。Word嫌いなんです。
ひな形使用上の注意
htmlを見ると、大文字タグ、bodyに直書き、htmlのバージョン指定がないなど、凄い気になることがありますが、気にしてはいけません。
というのも、出願する時に体裁チェッカーが走るので、あんまり変に弄らないことをお勧めします。
また、文字コードはSJISを使用します。SJISがイヤだからドラフトまではUTF8で編集する、というのも別に構いませんが、SJIS範囲外の文字を入力しないように注意しましょう。
図・数式について
図は基本的に2階調BMPを使用します。一応JPEGも可能ですが、基本使わないように特許庁もコメントを出しています。
JPEGを使用する場合、必要以上に読み込みの画素密度を高くしたり、保存時の圧縮率を低くすると、ファイルサイズが非常に大きくなります。 JPEGは、特許・実用新案の図面代用写真又は意匠・商標の色彩を含む図面や写真のみに使用してください。 また、画素密度は200dpiを前提として、保存時には可能な限り圧縮率を高くし、ファイルサイズを小さくするよう設定してください。 特許・実用新案の図面代用写真や意匠・商標の色彩図面や写真以外の図形の場合は、白黒のPNG、GIF、BMP形式を使用してください。
refer from: 電子出願ソフトサポートサイト(よくあるQ&A 書類作成・文書入力B)
図は”【書類名】図面”にまとめます。HTML形式の場合は、図の番号とともにimgタグで貼り付けます。また、数式については、文中に直接(imgタグで)埋め込みます。
段落番号を打つ
【0001】という形式の段落番号を打つ必要があります。
書きかけの段階から段落番号を打つと、文章を挿入したり削ったりすると、酷く面倒なことが起こります。最後に一括して行うことをお勧めします。自分では、段落番号をすべて【XXXX】としておいて、後で自作したrubyプログラムで段落番号に置換する方法をとりました。
一応置いておきます。SJISファイルを入力するようにしてください。
http://kinokorori.ninja-x.jp/paragraph_xxxx.rb
表紙について
書類名は「特許願」ですが、まあ早い話が表紙です。テンプレートはこんな感じになっています。
【書類名】 特許願 【整理番号】 POOOOO3-1 【あて先】 特許庁長官殿 【国際特許分類】 A11B 1/11 A11B 2/11 【発明者】 【住所又は居所】 東京都千代田区霞が関1丁目3番1号 【氏名】 発明 一郎 【特許出願人】 【識別番号】 000000000 【氏名又は名称】 特許株式会社 【代理人】 【識別番号】 000000000 【弁理士】 【氏名又は名称】 代理 太郎 【選任した代理人】 【識別番号】 000000000 【弁理士】 【氏名又は名称】 代理 一郎 【電話番号】 00-0000-0000 【連絡先】 担当 【手数料の表示】 【予納台帳番号】 000000 【納付金額】 14000 【提出物件の目録】 【物件名】 明細書 1 【物件名】 特許請求の範囲 1 【物件名】 要約書 1 【物件名】 図面 1
ここは会社ではまず書かないと思われるところだと思います。順を追って説明します。
【書類名】 特許願
ここはそのままです。
【整理番号】 POOOOO3-1
整理番号は、出願者が勝手につけてよい番号です。桁も合わせる必要はありません。
【あて先】 特許庁長官殿
ここもそのまま。
【国際特許分類】 A11B 1/11
A11B 2/11
発明の分類番号です。
IPC分類表及び更新情報(日本語版) | 経済産業省 特許庁
ここから分類コード表を取得して、当てはまるものを入力します。また、入力に際し、桁数を全角スペースで正確に合わせる必要があるので注意してください。何を言っているのか意味不明かもしれませんが、たぶん出願時の体裁チェックで蹴られるので、イヤでも後からわかります。
【発明者】
【住所又は居所】 東京都千代田区霞が関1丁目3番1号
【氏名】 発明 一郎
発明者(要するに自分)の住所と名前を記入します。省略できません。
【特許出願人】
【識別番号】 000000000
【氏名又は名称】 特許株式会社
あなたの識別番号と個人名を入力します。識別番号については前回のエントリを参照してください。
個人での特許出願のために必要なプロセス(1) - 識別番号取得編 - キノコの自省録
【代理人】
【識別番号】 000000000
【弁理士】
【氏名又は名称】 代理 太郎
【選任した代理人】
【識別番号】 000000000
【弁理士】
【氏名又は名称】 代理 一郎
【電話番号】 00-0000-0000
【連絡先】 担当
要らないです。消してOK。
(たぶん弁理士使うなら、表紙は書いてもらえるでしょう。)
【手数料の表示】
【予納台帳番号】 000000
【納付金額】 14000
どうやって出願費用を納付したかによって異なります。これは次回のネタにします。
【提出物件の目録】
【物件名】 明細書 1
【物件名】 特許請求の範囲 1
【物件名】 要約書 1
【物件名】 図面 1
ここもそのまま。これらの書類をちゃんと揃えましょう。
とりあえず今回はここまで。
次回
個人での特許出願のために必要なプロセス(1) - 識別番号取得編
去年、ウィッチクライドネタで特許を個人出願したので、そのお話をたぶん3回くらいにわけて記述しようと思います。
あ、ウィッチクライドはこちらです。プレイしてね。
ウィッチクライド ~君の声が魔法となる~を App Store で
インターネット出願の流れ
初めて(インターネット)出願する場合のスキーマについてざっと紹介。
電子証明書をゲットする
申請人登録を行い、識別番号を取得する
提案書ひな形ファイルをダウンロードして、ガイドラインに沿って提案書を作成する
出願費用を支払って、提案書に納付番号を記載する
インターネット出願アプリで出願を行う
6-a. 記載不備がある場合は修正して再度出願
とりあえず今回は3まで。
ちなみに、1~3で最短3日くらいですが、長いと2週間はかかりますので注意。
電子出願サポートソフト
大抵の場合は問題ないと思いますが、OSが入れ替わってそれほど時間が経っていない場合、出願ソフトがサポートしておらず、インストールできないという事態が発生しますので注意してください。
実は、当時Windows10に入れ替えてしまったために、Windowsマシンにインストールできませんでした。
Windows10出たばかりというわけでもなかったんですけどね。対応は結構遅いという印象です。
まあ、Macも持っているのでなんとかなりましたが、Windowsマシンしか持っていない場合、OS入れ替えに注意しましょう。
電子証明書をゲットする
次に、電子証明書を手に入れる必要があります。なんで?というと、申請人登録に必要なためです。
ジャパンネットやセコムトラストシステムズなどから購入するか、マイナンバーカードに入っている電子証明書を提出するか、どちらか必要です。
購入する場合、2年で15000円くらいします。今ならマイナンバーカードがおすすめです。
マイナンバーカード、持ってますよね?持っていないなら申請して取得する必要があります。
マイナンバーカードの中に電子証明書があるので、カードリーダーで読み取って保存しましょう。
カードリーダーは、ヨドバシなどの家電量販店で普通に購入できます。3000円くらいです。
ちなみに、私はマイナンバーカードではなくジャパンネットのDIACERTを購入しました。
というのも、すでにマイナンバーカードはシステムとしてはありましたが、申し込みが殺到しすぎて、半年待ちなために諦めてしまいました。
識別番号を取得する
識別番号は出願者のIDです。1回取れば、2回目以降は同じ識別番号を使えばOKです。
電子証明書さえ取得すれば、識別番号の取得は手続きをするだけです。
インストールしたツールの中に、「申請人情報・証明書管理ツール」というアプリがありますので、それを起動して識別番号取得を行います。
”識別番号取得&利用登録”を選択して、ガイドに従って記入していきます。
識別番号の発行は、すぐに行われたような気がします、が、すいませんあまり記憶にないです。
ちなみにそのうちハガキも届きます。
次の記事
AIビジネスに騙されないために1つだけおさえておきたいポイント
昨今、AIビジネスが盛況です。猫も杓子もAIです。
そのおかげで、「ウチはAIやってます。アドバイスできます。」とか、「ウチはAIのツールを作っています。使ってください。」とか、 そういう類の営業を結構うけました。
いろいろ話を聞いているうちに、AIが、よくわかっていない老人を騙す単語になってないかと、ちょっと心配になってきました。
AI営業の持ってくる話
先方が、「1か月以内にキャンペーンを打つと、高い広告効果の見込める顧客を、顧客行動データから抽出します。そのために、1年分の顧客行動データを1000人分利用して、最適な特徴量抽出、モデルの選定・構築を行います。1年分とした理由、および1000人で十分であるとした理由は・・・」などの具体的な話を提示してくることは、稀です。
すいません、稀というか1件もありませんでした。
大体はツールかシステムの話です。
ツールを使うと簡単にAIが導入できるとか、うちのシステムを使うと、IoTデバイスからのデータを簡単に分析できるとか、そういう話ばかりです。
ツールを使うと、どれくらいAIを用いたビジネスが楽になるのでしょう?少なくとも楽になるのは確かだと思いますが、それは全体の何%を改善するものなのでしょう?
その辺のツボを押さえていないと、普通は導入の判断ができません。ところが、なぜかお金を払ってしまう人がいるのが”AI”という言葉の不思議です。
AIという単語の捉え方が、人によって解釈がてんでバラバラなことも原因ではないかと思います。
1つだけおさえておきたいポイント
さて、本題です。
話を持ってきた人に、CRISP-DMに基づいて質問をすることをお勧めします。
CRISP-DMとは、CRoss-Industry Standard Process for Data Miningの頭文字を取ったもので、その名の通り、データマイニングの標準的なプロセススキーマを定義したものです。
そう、データマイニングです。AIという10人に聞けば10人違う答えが返ってくる謎ワードではありません。
検索すればいくつかヒットすると思いますので、詳細はそちらを確認していただくのが良いと思います。ここでは概要だけ。
CRISP-DMは、データマイニングプロセスとして、6つのフェーズを定義しています。それぞれのフェーズについて、簡単で乱暴な解説 もつけておきます。
フェーズ1:ビジネスの状況の把握 →そもそもデータ解析した結果、カネになりそうなのか フェーズ2:データの理解 →データ解析に必要なデータは足りてるのか、使えるのか フェーズ3:データの準備 →集めたデータを綺麗に(欠損値処理、正規化など) フェーズ4:モデル作成 →いわゆる人工知能ってここを指してる フェーズ5:評価 →モデルは十分な性能があるのか(=理論通りカネになりそうなのか) フェーズ6:展開/共有 →具体的にビジネスに利用(ダイレクトメール送るなど)
CRISP-DMの特徴は、ビジネスの視点がある点と言われることがあります。これは非常に重要だと思います。
例えば、犬画像識別器を作りましょうとぶち上げたところで、変な顔されるのがオチです。理由は「くだらないから」ではなく、大抵の企業では、その技術はお金にならない可能性が高いためでしょう。
さて、「ツール」や「システム」はこれらのフェーズのどこに含まれるでしょう?大抵はフェーズ4(の一部)、もしかするとフェーズ3も入るかも、といったところです。
全体のプロセスから考えると、ほんの一部ですよね。さらに、ほかのフェーズはサポートすら期待できないか、たぶん追加料金を取られます。
話を持ってきた人が、どのフェーズまでカバーする気なのか(できるのか)、それとなく聞いてみることをお勧めします。
そしてフェーズ4もツールやシステムを導入したからといって一筋縄にはいきません。
モデル作成は泥臭い
モデルの作成はめちゃくちゃ泥臭い作業です。
大抵の場合、ビッグデータを処理することになるのではないかとおもいますが、このビッグデータが厄介で、モデルの構築のために、大量のデータを食わせてモデルの学習をさせることになります。
簡単に言えば、めちゃくちゃ時間がかかります。
おそらく、HadoopやらSparkやらの分散処理システムを組まないと、やってられなくなります。
CudaなどのGPGPUを当てにするなら、グラボも頭に入れる必要があります。
(いやいや、今ならクラウド上でやればいいですよね、と言う人がいたら、その人はきっと石油王です。)
そして、絶対に一発でうまくいくことはありません。
ハイパーパラメータの調整、モデル自体の変更、理論の組み換え、欠損値処理や正規化の変更、利用するデータの変更や拡大など、やることはめちゃくちゃあります。
1つ直してまた計算です。バグ入れると泣きます。バグが数値計算由来だと、バグっていることにすらしばらく気づかないことがあります。
ちなみにDeep Learningだと簡単になるとか、そんなことはないです。「特徴量抽出」という作業が不要になりますが、中間層の学習にめちゃくちゃ時間がかかります。
自作ゲーム「ウィッチクライド」の魔法認識エンジンは、特徴量抽出からの判別をしています。 作成に当たっては、やっぱり泥臭い作業はかなり発生しました。
ということで
AIという謎ワードより、CRISP-DMという単語を覚えておいた方が遥かに有用です。
別にフェーズを丸暗記する必要はないので、AI系の営業と相対するときに、メモを忍ばせておくとよいでしょう。
予約投稿とPixivの貼り付けテスト
息抜きがてらに智絵里をドロー。 予約投稿とPixivの貼り付けテスト。
シアーハートアタックの状態遷移設計
ラズパイで作ったシアーハートアタックの状態遷移がどうなっていて、どう実現しているのかというソフトウェアサイドのお話です。
ソフトウェアの話はいいかーと思っていたのですが、そりゃ自分がソフト屋だからかなあと思い直して文章を書いた次第。
シアーハートアタックについてはこちらをどうぞ。
状態遷移概要
図にしました。その方が説明早いので。
図の通り、全部で4状態です。
停止状態
ジッと黙っている状態です。
かといって何もしていないわけではなく、室温とターゲット温度の差分を取って、熱源がないかチェックしています。
発見状態
熱源を検知している状態です。モーター回して前進します。
前進中も、熱源チェックは継続します。
なお、停止状態から遷移した場合は、LEDランプを光らせて、「コッチヲ見ロッ!」と喋ります。
ロスト直後
前進中に熱源をロストした状態です。1秒程度静止します。
その間に熱源を再検知した場合は、そのまま発見状態へ戻ります。
完全にロストした場合は、探索状態へ遷移します。
探索
超信地旋回で、熱源を探します。
発見したら発見状態へ、旋回しても見つからなければ、停止状態に移行します。
ソフト設計
上記の通り、そんな複雑ではないです。が、それでも適当にif文で書くと、めちゃくちゃ苦労します。
状態管理と言えばStateパターン。ということで、Stateパターンを使って実装しました。
Stateパターンの親クラスは、こんな感じで実装してました。
STATE_IDLE = 0 STATE_LOST = 1 STATE_LOSTTURN = 2 STATE_FIND = 3 STATE_STAY = 255 class SuperState: #static thermo_ = None # 初期化メソッド # @param mystate_id 自分のステート番号 def __init__(self, mystate_id): self.mystate_ = mystate_id # 自Stateに切り替わった時に呼び出されます # @param prev_state 直前のState def enterState(self, prev_state): pass # 状態をチェックして、次に遷移すべきStateを決定します # @return 次State (STATE_STAYの場合は据え置き) def check(self): return STATE_STAY # 自分のステートIDを返します。 def mystate(self): return self.mystate_
このステートを保持している側の動作は、以下のようになっています。
def main(): state_ = state.StateIdle() state_.enterState(state.STATE_IDLE) while(True): current_state = state_.mystate() next_state = state_.check() if next_state == state.STATE_STAY: time.sleep(0.5) continue elif next_state == state.STATE_FIND: state_ = state.StateFind() elif next_state == state.STATE_LOST: state_ = state.StateLost() elif next_state == state.STATE_LOSTTURN: state_ = state.StateLostTurn() elif next_state == state.STATE_IDLE: state_ = state.StateIdle() state_.enterState(current_state) time.sleep(0.10)
やっていることは非常に単純です。
現在のステートクラスに対して、次に何のステートにするかをチェックさせます(→checkメソッド)。
もし、STATE_STAYならばそのまま継続。別のステートなら、その対応ステートクラスをインスタンス化して、enterStateを呼び出します。
この動作を延々と繰り返しているだけです。
各ステートクラスに次状態の脳みそを持たせているため、上記main()関数内は、機械的にステートIDに対応するインスタンスを生成するだけになっています。
この仕組みに従って、具象Stateクラスを実装すればいいだけです。
例えば、発見状態(STATE_FIND)なら、こんな疑似コードになります。
def enterState(self, prev_state): # if prev_stateがSTATE_IDLEなら: LED点灯、コッチヲ見ロッと発声 # モーターを前進モードにして回転 def check(self): # if 室温と赤外線温度が所定値未満: return STATE_LOST # そうでなければそのまま継続→ return STATE_STAY
シンプル。2つのメソッドを実装すればいいだけです。
後はモーター制御だったり、LED点灯だったり、温度センサーだったりのアクセス手段を用意すれば終わり。
センサー系制御やると、状態管理が結構必要とされることが多いので、Stateパターンを使うと大変楽になれると思います。
Raspberry piを乗っけて超信地旋回する
この前作ったシアーハートアタックは、熱源探索するために、その場で回転する動作をプログラムしています。
キャタピラの旋回
そもそもキャタピラで旋回ってどうやるのか、これ作る前は知らなかったんですが、片側のキャタピラを止めて軸回転する信地旋回と、キャタピラを互いに逆方向に回転する超信地旋回(極地旋回)の2通りがあるんですね。
超信地旋回をするには
要するに、超信地旋回するには、片方を順方向、片方を逆方向に回転するよう、モータ制御をすればいいわけです。
今回はそのモータ制御を、DRV8835というモータドライバを使って制御しました。秋月なら1つ300円で買えます。秋月の受け取りが面倒くさいなら、Amazonでも600円くらいしますが売ってます。
配線
配線はこんな感じです。
ざっくり左側がラズパイ、右側がモーターです。モーターの方は見たまんまです。モーター用の電源と、モーターA, Bの2つを接続しています。VMMは今回は使っていません。モーターAを右車輪用、モーターBを左車輪用にして、片方を順回転、もう一方を逆回転させて超信地旋回を行います。
ラズパイは、3.3VとGND、それからGPIOへ4本接続しています。どこでもいいのですが、私は17,27,22,23を使いました。
MODEは、HIGHを入れるとモータ制御がPHASE+ENABLEに、LOWにするとPWM制御になります。今回はHIGHを入れます。ENABLEはモーターをそもそも回すか回さないか、PHASEはHIGH/LOWで順回転、逆回転が変わります。なので、超信地旋回するためには、ENABLEを両モーターともHIGH, PHASEは片方のモーターをHIGH, 片方のモーターをLOWにすれば超信地旋回ができます。
ENABLEを片方止めると信地旋回になります。
超信地旋回の注意点
結構パワーが要ります。ギア比に注意。
スピード重視のギア比にすると、ボディーが重いと全く旋回しなくなります。
また、履帯が外れたり、脱輪したりすることがあります。
動画
ボディーはタミヤのユニバーサルプレートに、ツインモーターボックスとタンク工作基本セットを使用。
さらに、ラズパイとモータードライバー、モーター用電池、ラズパイ用電源(リポバッテリ充電器)が乗ってます。
MLX90614をRaspberry piで使う
前回紹介したシアーハートアタックの熱源探知には、赤外線温度センサーを使用しています。
赤外線温度センサーは、非接触で対象物の温度を測ることのできる温度計です。
今回使用したのは、MelexisのMLX90614という赤外線温度センサーです。
正確に測定するには5cmくらいの距離じゃないとダメですが、
多少離れていても、「なんか熱源がある」くらいは検出できます。
例えば、50cmくらい離れた場所に人がいた場合、室温よりは1℃くらい高くなります。
(レンズを使用したりすると、もっと伸びるかもしれません。)
3.3V(5V品もあるので注意), I2Cで制御可能ということもあり、ラズパイでもArduinoでも扱いやすい。
検出温度のレンジは-40~125℃ほど。
ただ、赤外線温度センサーって高いんですよね。
MLX90614は単価2200~3000円くらいです。壊したら泣きます。
ちなみに私は千石電商で2800円で買いました。
評価ボード付きだと7000円くらいですが、素で十分扱えます。
Amazonでは、ノーブランド品が\690で売ってるみたいです。
ふーん、これでもよかったかもしれない。
色々調べると、結構安値のものがありますね。ムムム。
例えば、多くの電子部品を安値で販売しているHiLetGoも、赤外線温度センサーを販売している模様。\430也
ちなみに、赤外線温度センサーには、4x4とか8x8とか、点ではなく2Dでデータを取れるものがあります。
こういう2Dセンサーをアレイセンサーと呼んだりします。値段は少々高めです。
買いやすいところではOMRONのD6TとかGrid-Eyeとか。
下の画像はOMRONのD6T-L44です。Grid-EyeはRSオンラインから買えます。
とりあえず、MLX90614の話に戻ります。
Raspberry piで扱う
ラズパイで扱う、というよりI2Cでどう扱うかという話がメインになります。
脚が4本で、Vdd, GND, SCL, SDAと、実に普通のI2Cです。
対応するラズパイのGPIOピンに差すだけです。SlaveAddrは0x5a。
$ i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- 5a -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
ここまではいいのですが、MLX90614のプロトコルはちょっとした癖があるので、適当にreadを試みても失敗します。
データの読み込み
データシート(これがまためちゃめちゃ分厚い)の8.4.3.1.1あたりですかね。
こんな風に書いてあると思います。
1 7 1 S|Slave Address|Wr|..(略)
これの意味するところは、Slave Addressは7bitで書いてください、ということです。
0x5a=0101 1010を表現するには、1bit左にシフトして、1011 0100=0xb4としなければなりません。
読み込みデータは、8.4.3.1.1にも、以下の文章、
If the access to the MLX90614 is a read operation it will respond with 16 data bits and 8 bit PEC only if its own slave address,
にも書いてある通り、Data-High, Data-Low, PECの3octetです。
The PEC is a CRC-8 with polynomial X8+X2+X1+1. T
ということで、PECはCRC-8です。誤り制御用なので、ホビー用途なら捨てても構わないと思います。
一度に3Byte読む必要があるので、SMbusのread_i2c_block_dataで読み込みましょう。
レジスタアドレスは0x7なので、
bus = smbus.SMBus(1) t = bus.read_i2c_block_data(0xb4, 0x7, 3)
で読み込めます。なお、アドレス0x6を読むと、外気温が取れます。
シアーハートアタックでは、0x7と0x6の差分を取って熱源判定をしています。