生産技術者サラリーマンの日々

社畜サラリーマンが生産技術やお金の悩みを徒然と書くブログです。私の備忘録が共有できるとうれしいです

【業務日誌】ワクチンの副作用でヘロヘロです。

本日の生産技術サラリーマンの一日です。

  • 6時30分 起床。16日の午後に2回目のワクチン接種の副作用で発熱37.5度、倦怠感で風邪をひいたような感覚。注射した肩も痛い。なぜか、上下冬服を着ていた。悪寒があったのか。記憶にない。
  • 7時すぎ、家を出る。とりあえず、チャリンコがきつい。
  • 8時始業。チーム個人の業務内容を聞き、アドバイス。何をしたいのかが明確になっておらず、その方法が別の方向に向いていたため、助言した。
  • 9時テレコン開始。社内の新しいシステムの運用が開始されている。大規模なシステムで、各部門の担当者がいるため、基本聞くのみ。平行してメールチェック。自分の担当部分に対して、業者さんより調査中のため9月末まで時間ほしいとの回答あった。生技はモノづくりだけでなく、社内のシステムの検討や仕様も作成しないといけない。
  • 10時30分 自動化設備試作機がある場所へ移動。今日はロボットハンドの取り付けのため、同じグループ会社の設計者さんに組立してもらう。並行して、ロボット側のエアー配線や治具の配置をしなおした。
  • 12時昼ごはん。ネギ塩豚丼?だった
  • 13時から取りつけたロボットハンドの動作確認。とりあえず、単体動作で機能を確認。とりあえず動いたからヨシとする。これから教示するのは骨が折れるので、次回にすることにした
  • 14時、別の自動化設備の改修が決まっているが、設備メーカーより実機確認してほしいと依頼があったため、確認作業をする。しかしなぜか、制御電源が入らず、エラーを設備が発する。いろいろと試すが動かない。仕方なく、事象をまとめて、事務所に戻る。
  • 16時、上記の設備メーカーさんとテレコン。改修の内容について、仕様調整。来週、調整内容を踏まえて、デザインレビューして頂く。さきほどのトラブルについて相談し、助言をもらい、明日、調査する。
  • 17時、ワクチンの副作用で、めまい、倦怠感がひどく、微熱があったため、定時で帰宅。

ごはんをたべて、すぐに布団へ一直線。

【PYTHON +OPENCV】物体検出の基礎 背景差分を実装する

画像処理

1.やりたいこと

以前、対象の物体抽出を色特徴量を使って対象物体の抽出を行った。

inusan0424.hatenablog.com

色情報以外にも、対象物体を抽出する方法として背景差分をやってみました。色抽出と組み合わせて対象領域を絞りこみやすくなります。

2.画像処理の方法

2.1 背景差分

 背景差分は、移動物体を検出/抽出する方法として有名な方法のひとつです。特に定点(固定)カメラでよく用いられています。
具体的な方法として、背景画像を事前に用意しておき、検出したい画像と差分(引き算)し、その差分値が閾値以上であれば、移動物体として検出できます。

 今回の実装では画像処理の結果としては、二値化処理とするので今回の場合であれば、移動物体を白画素(255)とし、それ以外(背景)を黒画素(0)としています。

OPENCVチュートリアルを参考にしました。
他にも高度な背景差分があるようですが、まずは基本からやってみます。

labs.eecs.tottori-u.ac.jp

2.2 ノイズ処理

 背景差分の結果、抜き出したい領域(白画素)とした場合、完全には吹き出せず、白い点々が点在する。これらは以降の画像処理で不要な情報となるため、背景差分による二値化処理にはノイズ処理を実施する必要があります。今回は、基本的な処理として、収縮膨張処理を行い、これらノイズ処理を実施していきます。

収縮

収縮(contraction)とは、注目している画素を中心として、その近傍(今回の例だと、縦3画素、横3画素)の中で、黒画素(0)がひとつでもあれば、注目画素を黒画素にする。逆に、注目画素の近傍すべて白画素であれば、注目画素は白画素(255)とする

#カーネルの設定(7×7ピクセルの近傍処理用)
kernel = np.ones((7, 7), np.uint8)
#収縮処理
mask = cv2.erode(mask, kernel)

膨張

膨張(dilation)とは、収縮の逆で、注目している画素を中心として、その近傍(今回の例だと、縦3画素、横3画素)の中で、白画素(255)がひとつでもあれば、注目画素を白画(255)にする。逆に、注目画素の近傍に白がひとつもなけえれば、注目画素を黒画素(0)にする。

#カーネルの設定(7×7ピクセルの近傍処理用)
kernel = np.ones((7, 7), np.uint8)
#膨張処理
mask = cv2.dilate(mask, kernel)

こちらのサイト様を参考にさせて頂きました。
図が色々とあって直観的にわかりやすいです。

imagingsolution.net

3.実装してみる

今回は、ゴーストさんを抽出してみます。
抽出結果は末尾に添付していますが、微妙な感じです。
もう少し、いろいろと前処理が必要な感じがします。

入力画像
入力画像
import numpy as np
import cv2

def ExImg(mask, input,output):
	h = mask.shape[0] #画像の縦画素数を取得
	w = mask.shape[1] #画像の横画素数を取得

	for j in range(h):
		for i in range(w):
			if mask[j,i] == 255:                    #画素に白があったら
				output[j,i,0] = input[j,i,0]   #入力画像のR値を格納
				output[j,i,1] = input[j,i,1] #入力画像のG値を格納
				output[j,i,2] = input[j,i,2] #入力画像のB値を格納
			else:
				output[j,i,0] = 255
				output[j,i,1] = 255
				output[j,i,2] = 255

def BackGroundDetect():
	kernel = np.ones((7, 7), np.uint8)  #カーネルの指示
        th = 40               #背景差分の閾値を40ピクセルとする
	imgIn = cv2.imread("input.jpg")  #入力画像の読み込み
	imgOut = imgIn
	imgBk = cv2.imread("bak.jpg")   #背景画像の読み込み
	gray = cv2.cvtColor(imgIn, cv2.COLOR_BGR2GRAY)
	bg = cv2.cvtColor(imgBk, cv2.COLOR_BGR2GRAY)
	mask = cv2.absdiff(gray, bg)    #背景差分
	mask[mask < th] = 0        #二値化処理
        mask[mask >= th] = 255       #二値化処理
	d_mask = cv2.dilate(mask, kernel)      #膨張処理
        e_mask = cv2.erode(d_mask, kernel)  #収縮処理
	ExImg(e_mask, imgIn,imgOut)    #物体の抽出画像を生成

	cv2.imwrite("diff.jpg",mask) 
	cv2.imwrite("erode.jpg",e_mask)
	cv2.imwrite("diration.jpg",d_mask)
	cv2.imwrite("output.jpg",imgOut)

pythonを立ち上げ、実行は以下のように記載します。

import BackGroundDetect as bg
bg.BackGroundDetect()
入力画像
入力画像
背景画像
背景画像
差分画像
差分画像
膨張画像
膨張画像
収縮画像
収縮画像
出力結果
出力結果

inusan0424.hatenablog.com

inusan0424.hatenablog.com

自動車部品メーカーから重工への転職体験談(志望動機など)

将来の目標
将来の目標

数年前、当時勤めていた自動車部品メーカー(1,2次サプライヤ)で自社で使用する自動化設備の開発する部署で電気設計をしていまいた。
仕事環境はとても恵まれていたのですが、将来的に自分の能力アップやもっと大きな仕事、そして、一番の理由である、給料のアップしたいとの思いから完成品メーカーをターゲットに活動し転職しました。

目次

1. 面接官は何を見ている?

面接官
  なぜ、転職するのか!?と聞かれて、「職場がいやだから」「環境がよくない」「給料が安い」など、ネガテイブな回答をすると、面接官からしても、「(心の中で)採用したらよくない人だ」と思われてしまいます。やはり、転職のイメージは、何かしら今の職業に問題があって受けに来ると思われてもしかたありません。企業側としては、採用枠が決まっており、良い人材をとりたいのです。問題がある人やメンタル的に弱く、休みが多い人を採用すると損ですよね?ですので、いろいろな視点から質問をして、人間性や価値観、向上心を見たいというのが狙いなのではないかというのが私の考察結果です。(当たり前のことですよね・・・)

2.転職理由

転職理由ってほんと考えるのに悩みました。

ポイントとしては、
なぜ、「今の環境ではいけないのか」という点について納得がいく理由をネガティブな印象にならないよう記載/述べることです。

「自分はこんな未来を実現したい」→「でも、今は●●な理由で出来ない」→「だから●●な環境へ行きたい」という流れでお話をされると前向きに作成がしやすくなります。納得性が無く、「本当に転職をしないと解決出来ないの?」「今の会社に入社するときから分かっていたことではないのか?」と感じられないように配慮しました。

お恥ずかしい限りですが、当時の私の転職理由を以下に記載します。何かのお役に立てれば、幸いです。

私は、現職に入社した理由は今まで学んできたソフトフェア技術やマイコンを用いたものづくりを生かして、電子制御を用いた開発をしたいと思い、入社をしました。しかし、現状では電気設備の主任技術者に選任されており、将来もそうした保守の業務がメインとなり閉鎖的な環境での業務になると思われました。成りたい自分を実現するために現職においても上司と相談しましたが難しく、将来の自分を創る方法として転職もひとつの方法だと思い希望しています。

3.志望動機

これもまた、面接や応募書にぜったい記載する内容です。ここでの芯をしっかりと考えていないと、以降の面接対策での回答と合わなくって線が細い人という印象になってしまいます。

ポイントしては
「自分が大切にしている価値観」と「会社の特徴・方向性」がいかにマッチしているか、と伝える場面です。

転職理由の延長線上から論じ、「自分は●●なことを大切に考えている」→「その点、御社は●●です」→「だから●●な点で魅力を感じるのです」という構成とすると意図が伝わりやすくなります。
企業を分析する際は「なぜこの業界か?」「なぜこの企業か?」「なぜこの仕事か?」という3要素から考え、「他社には当てはまらない『この会社だけに当てはまる』志望理由」を「具体的に」伝えることが必要です。よくあるNG例として「▲▲な社風(理念)に惹かれ・・・」「高い技術力に惹かれ・・・」などがあります。具体的にどんなところから何かを感じたのか、また、その点を魅力に感じる点は何であるのか、という内容が必要です。

4.面接対策(面接官へのアピールの仕方)

面接のアピール

  • 協調性がある人。個人で能力が高いタイプよりチームで成果を上げるタイプが好まれる傾向があると思う。自己主張が強いタイプ、コミュ力が弱い、考え方が独特だとマイナスイメージ。
  • 柔軟性がある人。どんな業務でも対応でき、どんな相手とでも気持ちよく働けるタイプ。 こだわりが強い、頑固、融通が利かない、好き嫌いが強いと思われるとマイナスイメージ。
  • 元気で芯のしっかりした人。印象はだけでなく、話の筋や自身がぶれていないような印象が大事。線が細い、おとなしすぎる、残業したくない、細かいことを気にするタイプはないナスイメージ

5.面接時の想定問答を用意する

面接ドキドキ
1項で記載した人間性や価値観、向上心などを見るために、いろいろな質問をしてきます。私は面接時にアップアップした経験から聞かれた質問を覚えておき、回答を用意していました。これを事前に用意していると面接の回答のブレを少なくでき、芯がある人と印象付けることができると思い、準備しました。

問答1:- XXX会社のイメージと自分の性格が合致しますか?

<回答>
私が思っている御社のイメージは私にも当てはまります。
先にお伝えしたように使う人(お客様のこと)を考えて製品づくり、サービスを展開されています。
 私は設備設計を担当していますが、品質や要求タクトはもちろんですが、一番はオペレータのことを考えています。利用者のことを考えてものづくりをする気持ちは業務内容は違えど、志は同じだと考えています。

問答2:なぜ、転職するのか?今の会社じゃだめなのか?

<回答>
私は入社当時から2つのことを心に決めて全力で取り組んできました。
① 新しい技術吸収し、様々なことにチャレンジできる自分を成長させることができること。
② グローバルな視点で様々な人々と協力し、ものづくりをしたい、成功させたい
 しかし、現状の所属部署では電気設備の主任技術者に選任されており、将来もそうした保守の業務がメインとなり閉鎖的な環境での業務になると思われました。成りたい自分を実現するために現職においても上司と相談しましたが難しく、将来の自分を創る方法として転職もひとつの方法だと思い希望しています。

問答3:転職活動で重視していることは?

<回答>
海外案件にも携わることができ、若いうちから大きな指名、課題を持ってチャレンジさせてもらえることです。また、将来を見据えたときに大規模なプロジェクトを任せてもらえるために高めていける職場であるかを想像して決定します。

問答4: 現職の仕事の面白さが分かりかけてくる時期かと察するが、なぜ転職するのか?

<回答>
電気設備だけでなく、社内の設備設計も興味があり大変面白いです。また、周りからも信頼を得るまで成長できたと感じています。しかし、所属部署では海外案件や大きなプロジェクトに参加することが難しく、主任技術者を選任されていることもあり他部署との折衝や技術交流が少ないと感じています。私は、将来は海外案件やたくさんの人達と協力して大規模なプロジェクトを完遂できる技術者になりたいと考えています。社内でそうした環境に自分をおきたいと行動しましたが、難しく、転職もなりたい自分を作る上でひとつの方法だと考えて行動しています。

問答5:チームをまとめるためにはどうするか?

<回答>
自分の考えをオープンにして相手に旨く伝えること、表現することだと思っています。そして、自分から積極的に歩みよりみんなの考えがひとつになるように相手を真剣に向き合うことが大切だと思っています。
 多くの人と仕事をする中で意思の統一は難しいものであると考えていますが、自分から行動し、相手と顔を合わせて語り合えば絶対に答えが見つかると思っています。

問答6:過去仕事で最も落ち込んだことは?

<回答>
設備に漏電させてしまい上位の漏電遮断機まで波及してしまい、施設の1/4を停電させてしまい多く人に迷惑をかけたことです。
 原因は充電部の絶縁のやり方が悪く、金属管に接触しておりそこから漏電させてしまいました。作業がよくなかったのはもちろんですが、漏電の意味や原理が分からずどうやって調べてよいかまったく分からず上司に助けてもらいました。原因はたいしたことではありませんが、そこで電気に対する基本的な知識が大きく欠けていることを再認識しました。その経験が大きく、毎日時間を見つけて電気の勉強に力をいれました。その結果、第三種電気主任技術者に合格し、今では社内の設備の一部の主任技術者に選任されています。
 失敗したから気をつけようではなく、そこから自分に足りないものを発見し吸収していきたいと考えています。

問答7:困難に直面したときどうするか?

<回答>
自分の抱えている問題をオープンにして色々方に相談するようにしています。その理由として、自分の中で悩みに悩んでいると考えが狭くなって発想が乏しくなるからです。私一人ではできないことはたくさんありますが、周りの方に協力していただければ時間がかかるかもしませんが乗り越えられると信じています。

人材マネジメント入門を読んだ感想

1年前から係長クラスの役職を拝命して、曲がりなりにも部下がいます。これまでは個人での業務を遂行するための知識、経験をさせていただいたが、今後は組織を意識した業務運営にも意識をもっていかないといけないのかと思い、休みを利用して本を読んでみた。

今回読んだ「人材マネジメント入門」は、人材マネジメントとは!?に始まり、人事評価、賃金などの人事担当者、経営者側それぞれの視点からあるべき姿を描かれているため、多岐に渡ります。
自分は、上司としての心構えや部下を育てるための思想や考え方を学びたいので、その視点からこれは!と思った感想を述べたいと思います。

引用:図解 人材マネジメント入門
   人事の基礎をゼロからおさえておきないひとのための「理論と実践」100のツボ


目次

1.OJTの効果的な方法

OJTは相互理解が重要
OJTは相互理解が重要

 OJTとは、On Job Traingの略で、仕事を通じて学ぶこと。
 ただただ仕事を与えるだけではダメ!
 なので、以下のことが重要なのかなと思いました。

  1. 大切なことは、与えた仕事に対して、受け取った側(部下)が「自分で決定できる」「有意義」であることを実感させること。
  2. 指示する側(上司)が知識と意欲を有していて、部下に対して適切な「フィードバック」があること。
  3. 何が良くて、何がダメだったとかを論理的に説明し、相互で理解しあえることが重要

2.「はたらきがい」をもってもらうためには

社会のあらなみ
社会のあらなみ

 一般的に、会社のリーダー層に「はたらきがい」が高く、一般従業員が低いらしい。
 このギャップが小さい会社ほど、業績が高い傾向にあるらしい。
 じゃ、どうしたらよいのか!?ってことで、自分の読んだ理解としては、

  1. みんなそれぞれ不満があって、それが満たされないと「はたらきがい」が低下する。(どこでもある話でしょうが)なので、無理に持つ必要はない。自ら自然に得るもので

 外部から付与されたり、強制的に与えられるものではない!

  1. 賃金の条件も大事だけど、達成した喜び、裁量の拡大(責任間を与える)、他者からの評価などモチベーション向上=やりがい向上

つまり、自分の言葉で置き換えると、部下へは自分で進路を生み出させ、思った通りにやらせてみる。上司は、適宜その進路をフォローしてアドバイスする。成功体験をつかませることが重要

3.リーダーシップとは

リーダーシップ
リーダーシップ

リーダーは、正しいゴール(目標)を「指し示す」枠割で、リーダーシップとは、「影響力」という能力のこと
つまり、リーダーが指示した方向にちゃんとついてきてくれるといった影響力が発揮できる能力であること。らしいです。

読んだ感想としては、リーダーシップを伸ばし、リーダーとしての力を上げるには

  1. 目標、ミッションを完遂するために、人材をどのように配置し、任せることができるか
  2. 人間関係や割り当てをめぐる修羅場をどう乗り越えるか

やはり、人間関係を円滑に回すことのできる調整力やコミュ力、そして、人の性格や人格を理解して、職場が最適にかつ、目標を完遂するために人を動かすことのできる力が重要

【PYTHON +OPENCV】カメラキャプチャーを実装する(動画保存も)

1.やりたいこと

 WEBカメラなどのUSB接続したカメラから映像を取得して、リアルタイムで
画像処理を行う。例えば、ノートPCにWEBカメラを付けた状態で、取得した画像から画像処理を行い、その処理結果をマイコンなどへ通信してデータを送信することで画像処理を用いた制御システムが簡易的にできます。

2.キャプチャープログラム

video.write(frame)を実行してプログラム実行する。その後、終了させるとそれまでの画像を動画ファイルとして所定の場所に出力される。

import cv2

cap = cv2.VideoCapture(0)
fps = int(cap.get(cv2.CAP_PROP_FPS))
w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v')
video = cv2.VideoWriter('video.mp4', fourcc, fps, (w, h))

while True:
    ret, frame = cap.read()
     video.write(frame)
    cv2.imshow("Frame", frame) 
    if key == 27:   
         break
cap.release()
cv2.destroyAllWindows()

【PYTHON】DXFファイルから座標データを取得する

背景

自分の経験ですが、数年前は数値データをセンサから読み取ったデータを取得してPLCなどの制御装置で収集し、そのデータを変換して他の制御装置へ送ったり、他のアクチュエータへの操作量にするなどしてシステムを構築していました。

 これらのシステムは、基本的に外部からの観測したデータに基づき制御するので実際に装置がないと検証できなく、実機がないと数値データを構築するためリードタイムが長く、手間が多いことが問題でした。品種が少ない、データ量がすくなければ、手打ちで問題ないですが、データが膨大になると、もうお手上げです

ってことで、DXFファイルなどの図面データから数値データを取得して効率化を図るため、PYTHONでDXFファイルを読み込む方法を実装しました。

 1.DXFファイルとは
 DXFファイルとは、Autodesk社が開発したファイル形式の1つです。よく、AutoCADというCADソフトを使っていましたが、それを読み書きするときに利用するファイル形式です。DXFは、Drawing Exchange Formatの略称で、図面の変換(交換)が可能な図面形式であることが特徴で、バージョンが異なる場合でもデータ相互が必要となり、DXFが重宝されています。


2.PYTHONでの読み込み方法

 DXFファイルから座標データを読み込めないかと探した結果、dxfgrabberというモジュールがあるのでそれをPYTHONでインポートすることで利用できるようです。WHLの設定方法は、割愛しますが、dxfgrabber-1.0.1-py2.py3-none-any.whlをコマンドプロンプトから読み込まるせることで設定できます

 

3.実装

てなことで、DXFファイルから座標データを取得するプログラムサンプルで作成しました。

import numpy as np
def main():
    dxf = dxfgrabber.readfile("ファイル名.dxf")
    i = 0          #インデックスカウンタ
    d = []           #データをスタックする配列変数の定義
    data = [0,0,0,0]     #座標データの格納

 

    for entity in dxf.entities:          #座標データの数
       if entity.dxftype == 'LINE':    #ラインを探す
          x1 = entity.start[0]   #開始点X座標
          y1 = entity.start[1]   #開始点X座標
          x2 = entity.end[0]            #終点X座標
          y2 = entity.end[1]    #終点Y座標
          d = [x1, y1, x2, y2]   #開始終点の座標を格納
          data = np.vstack((data,d)) #データをスタック
          i = i + 1         #カウンタをインクリメント
    np.savetxt('line.csv',data,delimiter=',') #座標データを出力

入力データ(DXFファイル)

入力データ(DXFファイル)
入力データ(DXFファイル)

出力結果

出力結果
出力結果

【資産運用初心者】iDeCo 個人型確定拠出年金は絶対すべし!!

1.IDeCoとは

 iDeCoとは、公的年金にプラスして給付を受けられる私的年金制度の1つで、公的年金と異なり、加入は任意となります。加入の申込、掛金の拠出、掛金の運用の全てをご自身で行い、老後に受け取ることで、生活資金を増やすことを目的とした国の方策とのことです。

 

つまり、国が行っている個人年金制度のようなものです。

対象者は、

①自営業者

②厚生年金保険の被保険者(つまり、サラリーマン)

③専業主婦(国民保険3号)

 

私は、②のサラリーマンですので、会社で運用する企業側で利用しています。簡単にいうと、上記の掛金を給料から天引きされて、運用に自動的にまわされるので、日々何もしなくてよい仕組みになっています

 

2.メリット

 

一番のメリットは、節税でしょうさきほど述べたように、給料天引きされますので、天引きされた金額に対して、所得税がかかりますので、とられる税金は少なくなります。

 また、運用中で利益が出ても課税されないし、一時金をうけとっても1500万円以下あれば、非課税(通常20%は税金として取られます)ので資産運用をする制度としてはめちゃめちゃ効率が多いので是非とも利用しない手はないので。

 

私は、給料から月2万円を入れています。正直、月給から2万(正確にはボーナス天引き)されるのはえーって感じですが、それ以上に利率がよいので少々つらいですが、納めています。ちなみに、60才まで引き出すこともできないので・・・・まとまったお金がほしいとならないようにしなければなりません

 

3.結果どうなの?

 

これは、私が行っているiCeCoの運用状況です。投資信託ですので、購入するものは、外株と国内株を50%ずつ購入しています。リスクは高いですが、長期運用するので、ドルコスト平均法で分散されるという理由からACTIVEの商品を選定しています。現時点で、59万で運用(はじめて3年くらい)ですが、59万に対して15万の利益が生まれています。初回から約10%の利回りです(おそるべき・・・)

 

通常、定期預金だと0.03%?くらいだったでしょうか。ほとんど意味がないので、貯金するくらいなら、こちらで運用する方が利回りがめちゃめちゃよいのです(もちろん60才まで塩漬けですが)これからも継続的にウォッチしていきます。

f:id:inusan0424:20210728232849p:plain

 

引用:厚生労働省

www.mhlw.go.jp/stf/seisakunitsuite/bunya/nenkin/kyoshutsu/ideco.html

 

 

https://blog.hatena.ne.jp/inusan0424/inusan0424.hatenablog.com/config/design/detail