This is not a question about vertically centring in div exactly, but displying the label on the hidden File Input to be vertically aligned?
https://jsfiddle.net/pbv07uxm/
table {
  font-family: sans-serif;
}
.submitButton {
  height: 44px;
  width: 104px;
  display: block;
  background-color: #002044;
  color: white;
}
.hide {
  display: none;
}
.fileLabel {}
#photoButton {
  text-align: center;
}<table>
  <tr>
    <td>
      <input class="submitButton" type="submit" value="Back">
    </td>
    <td>
      <input class="submitButton" type="submit" value="End">
    </td>
    <td>
      <div id="photoButton">
        <input type="file" name="photo" id="photo" class="hide" accept="image/*" capture="camera" />
        <label for="photo" class="submitButton fileLabel">Take photo</label>
      </div>
    </td>
  </tr>
</table>
 
    