2020年1月16日木曜日

「モバイル ユーザビリティ」の問題が新たに 検出されました クリック可能な要素同士が近すぎます

SearchConsoleから、いつもと少し違うエラーが届きました。

モバイル ユーザビリティ
クリック可能な要素同士が近すぎます

今回はこのエラーについて対策してみます。



1.モバイルフレンドリーテスト

SearchConsole画面のモバイルユーザビリティを確認すると、サイト内のエラー情報が確認できます。
 今回のエラーは前回のクエリパラメータの問題のものと違うようです。



画像の虫眼鏡をクリックすると画面右側に詳細画面が表示されます。

詳細の「ライブページをテスト」をクリックすることで、モバイルフレンドリーテスト画面が起動します。

 
どうやら、画像の赤枠部分のリンクが近すぎるということのようです。


Bloggerの編集画面ではこんな感じ。
HTMLタグの機能を使わずに、行ごとのリンクを貼っていました。

 編集画面上部の「番号付きリスト」や「箇条書き」を選択してみます。

再度、モバイルフレンドリーテスト画面で確認すると、エラーが無くなっていることがわかります♪




2.エラーが解消されない場合

余談ですが、私の場合「箇条書き」を使用した場合はエラーが解消されましたが、「番号付きリスト」を使用した場合は以下のようにエラーが解消されませんでした。
これは「番号付きリスト」が悪いのではなく、Bloggerで使用しているテーマの設定による違いだと思います。
怪しい箇所については、モバイルフレンドリーテスト画面で確認しながら修正を行う必要があるようです。

2020年1月15日水曜日

スタイロフォーム造形の下地処理について検証してみた

スタイロフォーム造形について調べたので覚書き
今回は
  • 有機溶剤を使うとどうなるのか?
  • ジェッソ以外の下地処理は有効なのか?
について調べてみました。


スタイロフォームでの造形については以下も参考にしてください。


スタイロフォームはホームセンターなどで購入できます。
[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]
ブルースタイロフォームIB 600×300×20
価格:440円(税込、送料別) (2020/1/4時点)



1.有機溶剤を使ってみた

よく有機溶剤を使うと溶けるという記載をみるのですが、実際はどのくらい溶けるんでしょうか??
ということで、試してみました。

試したのは G17ボンド(左)とラッカーうすめ液(右)です。

G17ボンド(左)は希釈せずに、原液を塗ってみました。
半日ほど放置しておいてみましたが、写真のように黄色くなり固まっています。
スタイロフォームはほぼ溶けていません。

ラッカーうすめ液(右)は筆塗りした途端にスタイロフォームが溶けだしました。
塗った分だけスタイロフォームが溶けていきますw


2.下地処理

こちらは下地処理について検証。
下地処理としてはジェッソを利用することが多いようですが、アイロンを当てて加工したり水性シーラントを使うという話もあったので検証してみます。

写真は左半分がスタイロフォームにアイロンを当てています。
また、中心部分には下地処理として水性シーラントを塗布してあります。
塗料はすべてアクリル絵の具(黒)です。


まず、水性シーラント(中央)使用の有無ですが、塗装については違いがみられませんでした。
特に水性シーラントは利用する必要がないように思います。

つぎに、アイロンでの下地処理(左)ですが、スタイロフォームはアイロンを当てることで溶けて凹んでいます。
ただし、表面のザラザラは溶けて平面になるため、塗装はかなりしやすくなっています。

やすりがけやジェッソでの加工や下地処理の代わりにアイロンをあてるのは有効なようです♪

前回作成した歯車もアイロンでの加工を行っています。


ただし、アイロンでは細かい加工が難しいので、裁縫用コテなどがあるとより良いかなと思います。


2020年1月4日土曜日

スタイロフォームで歯車を作成


ライオンボードでの小物の作成はやったことあるんですが、スタイロフォームでの造形することになりそうなので、使い勝手を調査しました。



スタイロフォームでの造形については以下も参考にしてください。


スタイロフォームはホームセンターなどで購入できます。
[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]
ブルースタイロフォームIB 600×300×20
価格:440円(税込、送料別) (2020/1/4時点)


スタイロフォームは軽量なのでコスプレ界隈の方が大きなパーツを作るのに使用されているのですが、有機溶剤が使えないという問題があります。

なので、水溶性の木工用ボンドやアクリル絵の具のみを使用して作成してみます。


1.切断方法

今回は歯車を作成。
試作のため、型紙がフリーハンドのため歪です。 

まず。上の写真のように、下書きより少し大きめにザックリとスタイロフォームを切り出します。
スタイロフォームの切断は、カッターや発泡スチロールカッターよりも、小学校の時に使ってそうな小刀が使いやすかったです。
カッターだと、刃が引っかかって動かなくなります。また、安い発泡スチロールカッターでは切断速度が遅すぎて、効率が悪かったです。

小刀であれば、ザクザクと切れ目を入れて、パキっとスタイロフォームを割るだけなので簡単でした♪

2.加工

一般的なスタイロフォームの加工は「やすりがけ&ジェッソなどでの下地処理」のようですが、アイロンを使って造形するという話も見かけたので、今回はアイロンで加工します。
※アイロン加工するときは換気して作業を行ってください

アイロンで表面と側面を加熱します。
アイロンはスタイロフォームに直接当てずに、クッキングシートを使っています。

下書きの形になるまで、アイロンを当てたらこんな感じに丸くなりました♪
側面だけでなく、全面と背面もアイロンを当てています。
アイロンを当てることでスタイロフォーム自体が薄くなるので、厚みが必要な場合は、使用するスタイロフォームの厚さを調整してください。

アイロンを当てることで、表面の凹凸が溶けてなくなるので、ジェッソを使わなくても塗装しやすくなります。

歯車の溝と内部の穴もアイロンあてました。
最初、細かく切らなくてもアイロンで全部できないかな?と期待してたのですが、さすがに無理で小刀で歯車の溝を作ってからアイロンをあてています。

今回はアイロンを使用しましたが、作成物のサイズによっては、アイロンは大きいので加工が難しいかなと。
可能であれば、アイロンコテを利用したほうが良いと思います。


3.塗装

金属風に塗装したいので、アクリル絵の具で黒く塗りつぶします。
スプレーなど使いたいですが、有機溶剤NGなので、筆塗りです。
先にアイロンをあてておいたので、塗装は塗りやすかったです♪

黒色が可能したら、金属色と塗布します。
今回はアクリル絵の具のシルバーを使用しています。
ドライブラシ風に塗装したいのですが、サイズが大きいので、筆は使わずにスポンジを使って塗装しました。


シルバー塗布後。
こんな感じになりました。


今回は金属風塗装ですが、以下の記事も同様の塗装方法で作成しています。

2020年1月1日水曜日

C#で画像認識(Accord.Net) 4.MulticlassSupportVectorMachineクラス

第2回までのの記事で、最低限の画像認識は動くようになると思います。
今回は「前回、よくわかんなくて曖昧にしていた」部分の追記です。

Accord.Netについては、以下の記事も参考にしてください。
C#で画像認識(Accord.Net) 


MulticlassSupportVectorMachineクラス

前回のBinarySplitクラス同様、MulticlassSupportVectorMachineクラスの名前をそのままググってもあまり良い情報が出てこず・・・

どうやらMulticlassなSupportVectorMachineということのようです。

Wiki先生によると
サポートベクターマシン(英: support vector machine, SVM)は、教師あり学習を用いるパターン認識モデルの一つである。
だそうです。

教師あり学習というのは、入力データと正解データを使った学習方法のことです。
こちらは、プロットした点に「赤色、黄色、青色」のような情報を追加して、区切り線を作る処理にあたるようです。

こんな感じかな

ロジックは以下の部分が該当すると思います。

 // 赤、青、黄の3分割
 var classes = 3;

 // 機械学習の実施
 var msvm = new MulticlassSupportVectorMachine<chisquare>(0, new ChiSquare(), classes);

 var teacher = new MulticlassSupportVectorLearning<chisquare>(msvm)
 {
  Learner = (param) => new SequentialMinimalOptimization<chisquare>()
  {
   UseComplexityHeuristic = true,
   UseKernelEstimation = true
  }
 };
 msvm = teacher.Learn(inputs.ToArray(), outputs.ToArray());

処理は最後の
msvm = teacher.Learn(inputs.ToArray(), outputs.ToArray());
がメインです。


そして、最後にBagOfWordsで判別したい画像のプロット位置(★マーク)を取得し、MulticlassSupportVectorMachineクラスで、どの分類に含まれるのか判定を行っています。



 // 画像の判定
 Bitmap targetBmp = new Bitmap("イチゴの画像のパス");

 var codeword = bagofVW.Transform(targetBmp);

 // イチゴは赤いので「0」が返却されるはず
 var ret = msvm.Decide(codeword);




ちなみに、前回のBinarySplitは読み込んだ画像を正解がないままで分類わけするので教師なし学習にあたるみたいです。